Hierarchical robotic controller apparatus and methods

ABSTRACT

A robot may be trained by a user guiding the robot along target trajectory using a control signal. A robot may comprise an adaptive controller. The controller may be configured to generate control commands based on the user guidance, sensory input and a performance measure. A user may interface to the robot via an adaptively configured remote controller. The remote controller may comprise a mobile device, configured by the user in accordance with phenotype and/or operational configuration of the robot. The remote controller may detect changes in the robot phenotype and/or operational configuration. The remote controller may comprise multiple control elements configured to activate respective portions of the robot platform. Based on training, the remote controller may configure composite controls configured based two or more of control elements. Activation of a composite control may enable the robot to perform a task.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is related to co-pending and co-owned U.S. patentapplication Ser. No. 13/918,338 entitled “ROBOTIC TRAINING APPARATUS ANDMETHODS”, filed herewith, U.S. patent application Ser. No. 13/918,620entitled “PREDICTIVE ROBOTIC CONTROLLER APPARATUS AND METHODS”, filedherewith, U.S. patent application Ser. No. 13/907,734 entitled “ADAPTIVEROBOTIC INTERFACE APPARATUS AND METHODS”, filed May 31, 2013, U.S.patent application Ser. No. 13/842,530 entitled “ADAPTIVE PREDICTORAPPARATUS AND METHODS”, filed Mar. 15, 2013, U.S. patent applicationSer. No. 13/842,562 entitled “ADAPTIVE PREDICTOR APPARATUS AND METHODSFOR ROBOTIC CONTROL”, filed Mar. 15, 2013, U.S. patent application Ser.No. 13/842,616 entitled “ROBOTIC APPARATUS AND METHODS FOR DEVELOPING AHIERARCHY OF MOTOR PRIMITIVES”, filed Mar. 15, 2013, U.S. patentapplication Ser. No. 13/842,647 entitled “MULTICHANNEL ROBOTICCONTROLLER APPARATUS AND METHODS”, filed Mar. 15, 2013, and U.S. patentapplication Ser. No. 13/842,583 entitled “APPARATUS AND METHODS FORTRAINING OF ROBOTIC DEVICES”, filed Mar. 15, 2013, each of the foregoingbeing incorporated herein by reference in its entirety.

COPYRIGHT

A portion of the disclosure of this patent document contains materialthat is subject to copyright protection. The copyright owner has noobjection to the facsimile reproduction by anyone of the patent documentor the patent disclosure, as it appears in the Patent and TrademarkOffice patent files or records, but otherwise reserves all copyrightrights whatsoever.

BACKGROUND

Technological Field

The present disclosure relates to adaptive control and training ofrobotic devices.

Background

Robotic devices are used in a variety of applications, such asmanufacturing, medical, safety, military, exploration, and/or otherapplications. Some existing robotic devices (e.g., manufacturingassembly and/or packaging) may be programmed in order to perform desiredfunctionality. Some robotic devices (e.g., surgical robots) may beremotely controlled by humans, while some robots (e.g., iRobot Roomba®)may learn to operate via exploration.

Programming robots may be costly and remote control may require a humanoperator. Furthermore, changes in the robot model and/or environment mayrequire changes in the programming code. Remote control typically relieson user experience and/or agility that may be inadequate when dynamicsof the control system and/or environment (e.g., an unexpected obstacleappears in path of a remotely controlled vehicle) change rapidly.

SUMMARY

One aspect of the disclosure relates to a method of a non-transitorycomputer readable medium having instructions embodied thereon. Theinstructions may be executable by a processor to perform a method forcontrolling a robotic platform. The method may comprise: based on adetection of a sequence of control actions comprising two or moreactivations of the robotic platform, generating a composite controlelement, the composite control element being configured to execute thesequence.

In some implementations, the sequence may be configured to cause therobotic platform to execute a target task. Individual ones of the two ormore activations may be based on a user issuing two or more controlcommands via a remote control interface. The composite control elementmay be configured to execute the task responsive to a single activationof the composite control element by the user.

In some implementations, individual ones of the two or more controlcommands may comprise multiple instances of a given control operationeffectuated based on multiple activations of a first control elementassociated with the remote control interface.

In some implementations, individual ones of the two or more controlcommands may comprise one or more instances of two or more controloperation effectuated based on activations of a first control elementand a second control element associated with the remote controlinterface. The single activation may be configured to obviate theactivations of the first control element and the second control elementby the user.

In some implementations, the user comprises a human. The detection maybe configured based on a request by the user.

In some implementations, individual ones of the sequence of controlactions may be configured based on a control signal generated by acontroller of the robotic platform based on a sensory context and userinput. The control signal generation may be effectuated by a learningprocess comprising adjusting a learning parameter based on a performancemeasure. The performance measure may be configured based on individualones of the sequence of control actions and the target action. Thedetection may be effectuated based on an indication provided by thelearning process absent user request.

In some implementations, the platform may comprise at least oneactuator. The activation may comprise activating the least one actuatorat two or more instances of time. The instances may be separated by atime period.

In some implementations, the learning process may comprise execution ofmultiple trials. Individual ones of the multiple trials may becharacterized by trial duration. Individual ones of the sequence ofcontrol actions may correspond to an execution of a given trial of themultiple trials. The time period may correspond to the trial duration.

In some implementations, the robotic platform may comprise two or moreindividually controllable actuators. The activation may compriseactivating individual ones of the two or more actuators.

Another aspect of the disclosure relates to a remote control apparatusof a robot. The apparatus may comprise a processor, a sensor, a userinterface, and a remote communications interface. The processor may beconfigured to operate a learning process. The sensor may be coupled tothe processor. The user interface may be configured to present one ormore human perceptible control elements. The remote communicationsinterface may be configured to communicate to the robot a plurality ofcontrol commands configured by the learning process based on anassociation between the sensor input and individual ones of a pluralityof user inputs provided via one or more of the one or more humanperceptible control elements. The communication to the robot of theplurality of control command may be configured to cause the robot toexecute a plurality of actions. The learning process may be configuredbased on a performance measure between a target action and individualones of the plurality of actions. The association between the sensorinput and individual ones of a plurality of actions may be configured tocause generation of one or more of control primitives. Individual onesof the plurality of control primitives may be configured to causeexecution of a respective action of the plurality of actions.

In some implementations, the learning process may be configured togenerate a composite control based on a detection of the provision ofindividual ones of a plurality of user inputs. An individual action ofthe plurality of actions may correspond to execution of the task.

In some implementations, the learning process may be configured togenerate a composite control based on a request by the user. Thecomposite control may be configured to actuate the plurality of actionsthereby causing an execution of the target action responsive to a singleactivation by the user.

In some implementations, the learning parameter adjustment may beconfigured based on a supervised learning process. The supervisedlearning process may be configured based on the sensory context and acombination of the control signal and the user input.

In some implementations, the composite control generation may comprisepresenting an additional human perceptible control element configured tocause activation of the composite control by the use. Activation of thecomposite control may be configured based on detecting one or more of anaudio signal, a touch signal, and an electrical signal by the userinterface.

In some implementations, provision of individual ones of the pluralityof user inputs may be configured based on the user issuing an audibletag or a touch indication to the user interface.

In some implementations, the audio signal may be configured based on anaudible tag issued by the user. The tag may have a characteristicassociated therewith. The detecting one or more of the audio signal, thetouch signal, and the electrical signal by the user interface may beconfigured based on a match between the characteristic and a parameterassociated with the generation of the composite control.

In some implementations, the target action may be characterized by aplurality of terms in a human language. The audible tag may comprise avoice command that is not required to have a common meaning asindividual ones of the plurality of terms.

In some implementations, the audible tag may comprise one or more of avoice command or a clap sequence. The parameter may comprise aspectrogram.

In some implementations, the user interface may comprise a touchsensitive interface. The touch signal may be configured based on apattern provided by the user via the touch interface.

In some implementations, the user interface may comprise a camera. Theelectrical signal may be configured based on capturing a representationof the user by the camera.

Yet another aspect of the disclosure relates to a method for controllinga robot to execute a task. The method may comprise: based on a firstindication received from a user, executing a plurality of actions,individual ones of the plurality of actions being configured based onsensory input and a given user input of a plurality of user inputs; andbased on a second indication received from a user, associating a controlcomponent with the task, the control component being characterized byprovision of a user discernible representation. The execution of theplurality of actions may be configured to effectuate execution of thetask by the robot. Activation by the user of the control component usingthe user discernible representation may be configured to cause the robotto execute the task.

In some implementations, the provision of the user discerniblerepresentation may comprise: disposing an icon on a display; andconfiguring a user interface device to receive input based on the useraction configured in accordance with the icon.

In another aspect of the present disclosure, a non-transitory computerreadable medium is disclosed. In one embodiment, the non-transitorycomputer readable medium has instructions embodied thereon, where theinstructions are configured to, when executed by a physical processor,cause the physical processor to: based on a detection of a sequence ofdiscrete control actions comprising two or more activations of a roboticapparatus by a user, generate a composite control element, the compositecontrol element being configured to execute the sequence of discretecontrol actions in an order of execution provided by one or moreparameters associated with at least one of the sequence of discretecontrol actions; and when the execution of the sequence of discretecontrol actions is within an expected performance value assign thegenerated composite control element to a tag, the tag associated with auser interface control element; wherein: an invocation of the tag isconfigured to execute the sequence of discrete control actions inaccordance with the determined order of execution; the robotic apparatuscomprises a controller configured to generate a control signal,individual ones of the sequence of discrete control actions beingconfigured based on the control signal, the generation of the controlsignal being effectuated by a learning process; the learning processcomprises execution of multiple training trials, individual ones of themultiple training trials being characterized by a trial duration;individual ones of the sequence of discrete control actions correspondto an execution of a given training trial of the multiple trainingtrials; and the two or more activations of the robotic apparatuscomprise activations of at least one actuator at two or more instancesof time, the two or more instances of time being separated by a timeperiod, the time period corresponding to the trial duration.

These and other objects, features, and characteristics of the presentinvention, as well as the methods of operation and functions of therelated elements of structure and the combination of parts and economiesof manufacture, will become more apparent upon consideration of thefollowing description and the appended claims with reference to theaccompanying drawings, all of which form a part of this specification,wherein like reference numerals designate corresponding parts in thevarious figures. It is to be expressly understood, however, that thedrawings are for the purpose of illustration and description only andare not intended as a definition of the limits of the invention. As usedin the specification and in the claims, the singular form of “a”, “an”,and “the” include plural referents unless the context clearly dictatesotherwise.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram illustrating a robotic apparatus, according toone or more implementations.

FIG. 2A is a block diagram illustrating a controller apparatuscomprising an adaptable predictor block operable in accordance with ateaching signal, according to one or more implementations.

FIG. 2B is a block diagram illustrating a multichannel adaptivepredictor apparatus, according to one or more implementations.

FIG. 2C is a block diagram illustrating a multiplexing adaptivepredictor configured to interface to a plurality of combiner apparatus,according to one or more implementations.

FIG. 3A is a block diagram illustrating an adaptive predictor configuredto develop an association between control action and sensory context,according to one or more implementations.

FIG. 3B is a block diagram illustrating a control system comprising anadaptive predictor configured to generate control signal based on anassociation between control action and sensory context, according to oneor more implementations.

FIG. 4A is a graphical illustration depicting a robotic apparatuscapable of operating in three spatial dimensions, according to one ormore implementations.

FIG. 4B is a graphical illustration depicting user interface controllersconfigured of the apparatus of FIG. 4A, according to one or moreimplementations.

FIG. 4C is a graphical illustration depicting user interface controllersconfigured of the apparatus of FIG. 4A, according to one or moreimplementations.

FIG. 5 is a graphical illustration operation of a robotic controller,comprising an adaptive predictor of, e.g., FIGS. 2C, 3A-3B configured todevelop an association between control action and sensory context,according to one or more implementations.

FIG. 6A is a graphical illustration depicting obstacle avoidancetraining of a robotic device, according to one or more implementations.

FIG. 6B is a graphical illustration depicting training a robot toperform a target approach task, according to one or moreimplementations.

FIG. 6C is a graphical illustration depicting training a robot toperform a target approach and obstacle avoidance tasks, according to oneor more implementations.

FIG. 7A is a plot depicting modulated user input provided to a roboticdevice during one or more training trials for use, for example, with thetarget approach training of FIG. 6B, according to one or moreimplementations.

FIG. 7B is a plot depicting pulse frequency modulated user inputprovided to a robotic device during one or more training trials for use,for example, with the target approach training of FIG. 6B, according toone or more implementations.

FIG. 7C is a plot depicting ramp-up modulated user input provided to arobotic device during one or more training trials for use, for example,with the target approach training of FIG. 6B, according to one or moreimplementations.

FIG. 7D is a plot depicting ramp-down modulated user input provided to arobotic device during one or more training trials for use, for example,with the target approach training of FIG. 6B, according to one or moreimplementations.

FIG. 7E is a plot depicting user input, integrated over a trialduration, provided to a robotic device during one or more trainingtrials for use, for example, with the target approach training of FIG.6B, according to one or more implementations.

FIG. 7F is a plot depicting pulse width modulated user input of constantmagnitude provided to a robotic device during one or more trainingtrials for use, for example, with the target approach training of FIG.6B, according to one or more implementations.

FIG. 7G is a plot depicting pulse frequency modulated user inputprovided to a robotic device during one or more training trials for use,for example, with the target approach training of FIG. 6B, according toone or more implementations.

FIG. 8 is a graphical illustration of learning a plurality of behaviorsover multiple trials by an adaptive controller, e.g., of FIG. 2A, inaccordance with one or more implementations.

FIG. 9 is a plot illustrating performance of an adaptive roboticapparatus of, e.g., FIG. 2B, during training, in accordance with one ormore implementations.

FIG. 10A is a logical flow diagram illustrating a method of generating acomposite action primitive based on a detection of action sequence, inaccordance with one or more implementations.

FIG. 10B is a logical flow diagram illustrating a method of configuringa composite action primitive based on previously learned sub-actionprimitives, in accordance with one or more implementations.

FIG. 10C is a logical flow diagram illustrating a method assigningexecution multiple actions into a single control primitive, inaccordance with one or more implementations.

FIG. 11 is a graphical illustration depicting robotic apparatuscomprising an adaptive controller apparatus of the disclosure configuredfor obstacle avoidance, in accordance with one or more implementations.

FIG. 12 is a graphical illustration depicting robotic controllercomprising a hierarchy of control elements, according to one or moreimplementations.

FIG. 13 is a graphical illustration depicting robotic controllercomprising composite control elements, according to one or moreimplementations.

FIG. 14 is a graphical illustration depicting a hierarchy of controlactions for use with an adaptive control system of e.g., FIGS. 3A-3B,according to one or more implementations.

All Figures disclosed herein are © Copyright 2013 Brain Corporation. Allrights reserved.

DETAILED DESCRIPTION

Implementations of the present technology will now be described indetail with reference to the drawings, which are provided asillustrative examples so as to enable those skilled in the art topractice the technology. Notably, the figures and examples below are notmeant to limit the scope of the present disclosure to a singleimplementation, but other implementations are possible by way ofinterchange of or combination with some or all of the described orillustrated elements. Wherever convenient, the same reference numberswill be used throughout the drawings to refer to same or like parts.

Where certain elements of these implementations can be partially orfully implemented using known components, only those portions of suchknown components that are necessary for an understanding of the presenttechnology will be described, and detailed descriptions of otherportions of such known components will be omitted so as not to obscurethe disclosure.

In the present specification, an implementation showing a singularcomponent should not be considered limiting; rather, the disclosure isintended to encompass other implementations including a plurality of thesame component, and vice-versa, unless explicitly stated otherwiseherein.

Further, the present disclosure encompasses present and future knownequivalents to the components referred to herein by way of illustration.

As used herein, the term “bus” is meant generally to denote all types ofinterconnection or communication architecture that is used to access thesynaptic and neuron memory. The “bus” may be optical, wireless,infrared, and/or another type of communication medium. The exacttopology of the bus could be for example standard “bus”, hierarchicalbus, network-on-chip, address-event-representation (AER) connection,and/or other type of communication topology used for accessing, e.g.,different memories in pulse-based system.

As used herein, the terms “computer”, “computing device”, and“computerized device” may include one or more of personal computers(PCs) and/or minicomputers (e.g., desktop, laptop, and/or other PCs),mainframe computers, workstations, servers, personal digital assistants(PDAs), handheld computers, embedded computers, programmable logicdevices, personal communicators, tablet computers, portable navigationaids, J2ME equipped devices, cellular telephones, smart phones, personalintegrated communication and/or entertainment devices, and/or any otherdevice capable of executing a set of instructions and processing anincoming data signal.

As used herein, the term “computer program” or “software” may includeany sequence of human and/or machine cognizable steps which perform afunction. Such program may be rendered in a programming language and/orenvironment including one or more of C/C++, C#, Fortran, COBOL, MATLAB™,PASCAL, Python, assembly language, markup languages (e.g., HTML, SGML,XML, VoXML), object-oriented environments (e.g., Common Object RequestBroker Architecture (CORBA)), Java™ (e.g., J2ME, Java Beans), BinaryRuntime Environment (e.g., BREW), and/or other programming languagesand/or environments.

As used herein, the terms “connection”, “link”, “transmission channel”,“delay line”, “wireless” may include a causal link between any two ormore entities (whether physical or logical/virtual), which may enableinformation exchange between the entities.

As used herein, the term “memory” may include an integrated circuitand/or other storage device adapted for storing digital data. By way ofnon-limiting example, memory may include one or more of ROM, PROM,EEPROM, DRAM, Mobile DRAM, SDRAM, DDR/2 SDRAM, EDO/FPMS, RLDRAM, SRAM,“flash” memory (e.g., NAND/NOR), memristor memory, PSRAM, and/or othertypes of memory.

As used herein, the terms “integrated circuit”, “chip”, and “IC” aremeant to refer to an electronic circuit manufactured by the patterneddiffusion of trace elements into the surface of a thin substrate ofsemiconductor material. By way of non-limiting example, integratedcircuits may include field programmable gate arrays (e.g., FPGAs), aprogrammable logic device (PLD), reconfigurable computer fabrics (RCFs),application-specific integrated circuits (ASICs), and/or other types ofintegrated circuits.

As used herein, the terms “microprocessor” and “digital processor” aremeant generally to include digital processing devices. By way ofnon-limiting example, digital processing devices may include one or moreof digital signal processors (DSPs), reduced instruction set computers(RISC), general-purpose (CISC) processors, microprocessors, gate arrays(e.g., field programmable gate arrays (FPGAs)), PLDs, reconfigurablecomputer fabrics (RCFs), array processors, secure microprocessors,application-specific integrated circuits (ASICs), and/or other digitalprocessing devices. Such digital processors may be contained on a singleunitary IC die, or distributed across multiple components.

As used herein, the term “network interface” refers to any signal, data,and/or software interface with a component, network, and/or process. Byway of non-limiting example, a network interface may include one or moreof FireWire (e.g., FW400, FW800, etc.), USB (e.g., USB2), Ethernet(e.g., 10/100, 10/100/1000 (Gigabit Ethernet), 10-Gig-E, etc.), MoCA,Coaxsys (e.g., TVnet™), radio frequency tuner (e.g., in-band or OOB,cable modem, etc.), Wi-Fi (802.11), WiMAX (802.16), PAN (e.g., 802.15),cellular (e.g., 3G, LTE/LTE-A/TD-LTE, GSM, etc.), IrDA families, and/orother network interfaces.

As used herein, the terms “node”, “neuron”, and “neuronal node” aremeant to refer, without limitation, to a network unit (e.g., a spikingneuron and a set of synapses configured to provide input signals to theneuron) having parameters that are subject to adaptation in accordancewith a model.

As used herein, the terms “state” and “node state” is meant generally todenote a full (or partial) set of dynamic variables (e.g., a membranepotential, firing threshold and/or other) used to describe state of anetwork node.

As used herein, the term “synaptic channel”, “connection”, “link”,“transmission channel”, “delay line”, and “communications channel”include a link between any two or more entities (whether physical (wiredor wireless), or logical/virtual) which enables information exchangebetween the entities, and may be characterized by a one or morevariables affecting the information exchange.

As used herein, the term “Wi-Fi” includes one or more of IEEE-Std.802.11, variants of IEEE-Std. 802.11, standards related to IEEE-Std.802.11 (e.g., 802.11 a/b/g/n/s/v), and/or other wireless standards.

As used herein, the term “wireless” means any wireless signal, data,communication, and/or other wireless interface. By way of non-limitingexample, a wireless interface may include one or more of Wi-Fi,Bluetooth, 3G (3GPP/3GPP2), HSDPA/HSUPA, TDMA, CDMA (e.g., IS-95A,WCDMA, etc.), FHSS, DSSS, GSM, PAN/802.15, WiMAX (802.16), 802.20,narrowband/FDMA, OFDM, PCS/DCS, LTE/LTE-A/TD-LTE, analog cellular, CDPD,satellite systems, millimeter wave or microwave systems, acoustic,infrared (i.e., IrDA), and/or other wireless interfaces.

FIG. 1 illustrates one implementation of an adaptive robotic apparatusfor use with the robot training methodology described hereinafter. Theapparatus 100 of FIG. 1 may comprise an adaptive controller 102 and aplant (e.g., robotic platform) 110. The controller 102 may be configuredto generate control output 108 for the plant 110. The output 108 maycomprise one or more motor commands (e.g., pan camera to the right),sensor acquisition parameters (e.g., use high resolution camera mode),commands to the wheels, arms, and/or other actuators on the robot,and/or other parameters. The output 108 may be configured by thecontroller 102 based on one or more sensory inputs 106. The input 106may comprise data used for solving a particular control task. In one ormore implementations, such as those involving a robotic arm orautonomous robot, the signal 106 may comprise a stream of raw sensordata and/or preprocessed data. Raw sensor data may include dataconveying information associated with one or more of proximity,inertial, terrain imaging, and/or other information. Preprocessed datamay include data conveying information associated with one or more ofvelocity, information extracted from accelerometers, distance toobstacle, positions, and/or other information. In some implementations,such as that involving object recognition, the signal 106 may comprisean array of pixel values in the input image, or preprocessed data. Pixeldata may include data conveying information associated with one or moreof RGB, CMYK, HSV, HSL, grayscale, and/or other information.Preprocessed data may include data conveying information associated withone or more of levels of activations of Gabor filters for facerecognition, contours, and/or other information. In one or moreimplementations, the input signal 106 may comprise a target motiontrajectory. The motion trajectory may be used to predict a future stateof the robot on the basis of a current state and the target state. Inone or more implementations, the signals in FIG. 1 may be encoded asspikes.

The controller 102 may be operable in accordance with a learning process(e.g., reinforcement learning and/or supervised learning). In one ormore implementations, the controller 102 may optimize performance (e.g.,performance of the system 100 of FIG. 1) by minimizing average value ofa performance function as described in detail in co-owned U.S. patentapplication Ser. No. 13/487,533, entitled “SYSTEMS AND APPARATUSES FORIMPLEMENTING TASK-SPECIFIC LEARNING USING SPIKING NEURONS”, incorporatedherein by reference in its entirety.

Learning process of adaptive controller (e.g., 102 of FIG. 1) may beimplemented using a variety of methodologies. In some implementations,the controller 102 may comprise an artificial neuron network e.g.,spiking neuron network described in U.S. patent application Ser. No.13/487,533, entitled “SYSTEMS AND APPARATUSES FOR IMPLEMENTINGTASK-SPECIFIC LEARNING USING SPIKING NEURONS”, filed Jun. 4, 2012,incorporated supra, configured to control, for example, a robotic rover.

Individual spiking neurons may be characterized by internal state q. Theinternal state q may, for example, comprise a membrane voltage of theneuron, conductance of the membrane, and/or other parameters. The neuronprocess may be characterized by one or more learning parameter which maycomprise input connection efficacy, output connection efficacy, traininginput connection efficacy, response generating (firing) threshold,resting potential of the neuron, and/or other parameters. In one or moreimplementations, some learning parameters may comprise probabilities ofsignal transmission between the units (e.g., neurons) of the network.

In some implementations, the training input (e.g., 104 in FIG. 1) may bedifferentiated from sensory inputs (e.g., inputs 106) as follows. Duringlearning: data (e.g., spike events) arriving to neurons of the networkvia input 106 may cause changes in the neuron state (e.g., increaseneuron membrane potential and/or other parameters). Changes in theneuron state may cause the neuron to generate a response (e.g., output aspike). Teaching data arriving to neurons of the network may cause (i)changes in the neuron dynamic model (e.g., modify parameters a, b, c, dof Izhikevich neuron model, described for example in co-owned U.S.patent application Ser. No. 13/623,842, entitled “SPIKING NEURON NETWORKADAPTIVE CONTROL APPARATUS AND METHODS”, filed Sep. 20, 2012,incorporated herein by reference in its entirety); and/or (ii)modification of connection efficacy, based, for example, on timing ofinput spikes, teacher spikes, and/or output spikes. In someimplementations, teaching data may trigger neuron output in order tofacilitate learning. In some implementations, teaching signal may becommunicated to other components of the control system.

During operation (e.g., subsequent to learning): data (e.g., spikeevents) arriving to neurons of the network may cause changes in theneuron state (e.g., increase neuron membrane potential and/or otherparameters). Changes in the neuron state may cause the neuron togenerate a response (e.g., output a spike). Teaching data may be absentduring operation, while input data are required for the neuron togenerate output.

In one or more implementations, such as object recognition, and/orobstacle avoidance, the input 106 may comprise a stream of pixel valuesassociated with one or more digital images. In one or moreimplementations of e.g., video, radar, sonography, x-ray, magneticresonance imaging, and/or other types of sensing, the input may compriseelectromagnetic waves (e.g., visible light, IR, UV, and/or other typesof electromagnetic waves) entering an imaging sensor array. In someimplementations, the imaging sensor array may comprise one or more ofRGCs, a charge coupled device (CCD), an active-pixel sensor (APS),and/or other sensors. The input signal may comprise a sequence of imagesand/or image frames. The sequence of images and/or image frame may bereceived from a CCD camera via a receiver apparatus and/or downloadedfrom a file. The image may comprise a two-dimensional matrix of RGBvalues refreshed at a 25 Hz frame rate. It will be appreciated by thoseskilled in the art that the above image parameters are merely exemplary,and many other image representations (e.g., bitmap, CMYK, HSV, HSL,grayscale, and/or other representations) and/or frame rates are equallyuseful with the present invention. Pixels and/or groups of pixelsassociated with objects and/or features in the input frames may beencoded using, for example, latency encoding described in U.S. patentapplication Ser. No. 12/869,583, filed Aug. 26, 2010 and entitled“INVARIANT PULSE LATENCY CODING SYSTEMS AND METHODS”; U.S. Pat. No.8,315,305, issued Nov. 20, 2012, entitled “SYSTEMS AND METHODS FORINVARIANT PULSE LATENCY CODING”; U.S. patent application Ser. No.13/152,084, filed Jun. 2, 2011, entitled “APPARATUS AND METHODS FORPULSE-CODE INVARIANT OBJECT RECOGNITION”; and/or latency encodingcomprising a temporal winner take all mechanism described U.S. patentapplication Ser. No. 13/757,607, filed Feb. 1, 2013 and entitled“TEMPORAL WINNER TAKES ALL SPIKING NEURON NETWORK SENSORY PROCESSINGAPPARATUS AND METHODS”, each of the foregoing being incorporated hereinby reference in its entirety.

In one or more implementations, object recognition and/or classificationmay be implemented using spiking neuron classifier comprisingconditionally independent subsets as described in co-owned U.S. patentapplication Ser. No. 13/756,372 filed Jan. 31, 2013, and entitled“SPIKING NEURON CLASSIFIER APPARATUS AND METHODS USING CONDITIONALLYINDEPENDENT SUBSETS” and/or co-owned U.S. patent application Ser. No.13/756,382 filed Jan. 31, 2013, and entitled “REDUCED LATENCY SPIKINGNEURON CLASSIFIER APPARATUS AND METHODS”, each of the foregoing beingincorporated herein by reference in its entirety.

In one or more implementations, encoding may comprise adaptiveadjustment of neuron parameters, such neuron excitability described inU.S. patent application Ser. No. 13/623,820 entitled “APPARATUS ANDMETHODS FOR ENCODING OF SENSORY DATA USING ARTIFICIAL SPIKING NEURONS”,filed Sep. 20, 2012, the foregoing being incorporated herein byreference in its entirety.

In some implementations, analog inputs may be converted into spikesusing, for example, kernel expansion techniques described in co pendingU.S. patent application Ser. No. 13/623,842 filed Sep. 20, 2012, andentitled “SPIKING NEURON NETWORK ADAPTIVE CONTROL APPARATUS ANDMETHODS”, the foregoing being incorporated herein by reference in itsentirety. In one or more implementations, analog and/or spiking inputsmay be processed by mixed signal spiking neurons, such as U.S. patentapplication Ser. No. 13/313,826 entitled “APPARATUS AND METHODS FORIMPLEMENTING LEARNING FOR ANALOG AND SPIKING SIGNALS IN ARTIFICIALNEURAL NETWORKS”, filed Dec. 7, 2011, and/or co-pending U.S. patentapplication Ser. No. 13/761,090 entitled “APPARATUS AND METHODS FORGATING ANALOG AND SPIKING SIGNALS IN ARTIFICIAL NEURAL NETWORKS”, filedFeb. 6, 2013, each of the foregoing being incorporated herein byreference in its entirety.

The rules may be configured to implement synaptic plasticity in thenetwork. In some implementations, the plastic rules may comprise one ormore spike-timing dependent plasticity, such as rule comprising feedbackdescribed in co-owned and co-pending U.S. patent application Ser. No.13/465,903 entitled “SENSORY INPUT PROCESSING APPARATUS IN A SPIKINGNEURAL NETWORK”, filed May 7, 2012; rules configured to modify of feedforward plasticity due to activity of neighboring neurons, described inco-owned U.S. patent application Ser. No. 13/488,106, entitled “SPIKINGNEURON NETWORK APPARATUS AND METHODS”, filed Jun. 4, 2012; conditionalplasticity rules described in U.S. patent application Ser. No.13/541,531, entitled “CONDITIONAL PLASTICITY SPIKING NEURON NETWORKAPPARATUS AND METHODS”, filed Jul. 3, 2012; plasticity configured tostabilize neuron response rate as described in U.S. patent applicationSer. No. 13/691,554, entitled “RATE STABILIZATION THROUGH PLASTICITY INSPIKING NEURON NETWORK”, filed Nov. 30, 2012; activity-based plasticityrules described in co-owned U.S. patent application Ser. No. 13/660,967,entitled “APPARATUS AND METHODS FOR ACTIVITY-BASED PLASTICITY IN ASPIKING NEURON NETWORK”, filed Oct. 25, 2012, U.S. patent applicationSer. No. 13/660,945, entitled “MODULATED PLASTICITY APPARATUS ANDMETHODS FOR SPIKING NEURON NETWORKS”, filed Oct. 25, 2012; and U.S.patent application Ser. No. 13/774,934, entitled “APPARATUS AND METHODSFOR RATE-MODULATED PLASTICITY IN A SPIKING NEURON NETWORK”, filed Feb.22, 2013; multi-modal rules described in U.S. patent application Ser.No. 13/763,005, entitled “SPIKING NETWORK APPARATUS AND METHOD WITHBIMODAL SPIKE-TIMING DEPENDENT PLASTICITY”, filed Feb. 8, 2013, each ofthe foregoing being incorporated herein by reference in its entirety.

In one or more implementations, neuron operation may be configured basedon one or more inhibitory connections providing input configured todelay and/or depress response generation by the neuron, as described inU.S. patent application Ser. No. 13/660,923, entitled “ADAPTIVEPLASTICITY APPARATUS AND METHODS FOR SPIKING NEURON NETWORK”, filed Oct.25, 2012, the foregoing being incorporated herein by reference in itsentirety

Connection efficacy updated may be effectuated using a variety ofapplicable methodologies such as, for example, event based updatesdescribed in detail in co-owned U.S. patent application Ser. No.13/239,255, filed Sep. 21, 2011, entitled “APPARATUS AND METHODS FORSYNAPTIC UPDATE IN A PULSE-CODED NETWORK”; U.S. patent application Ser.No. 13/588,774, entitled “APPARATUS AND METHODS FOR IMPLEMENTINGEVENT-BASED UPDATES IN SPIKING NEURON NETWORKS”, filed Aug. 17, 2012;and U.S. patent application Ser. No. 13/560,891 entitled “APPARATUS ANDMETHODS FOR EFFICIENT UPDATES IN SPIKING NEURON NETWORK”, each of theforegoing being incorporated herein by reference in its entirety.

Neuron process may comprise one or more learning rules configured toadjust neuron state and/or generate neuron output in accordance withneuron inputs.

In some implementations, the one or more learning rules may comprisestate dependent learning rules described, for example, in U.S. patentapplication Ser. No. 13/560,902, entitled “APPARATUS AND METHODS FORGENERALIZED STATE-DEPENDENT LEARNING IN SPIKING NEURON NETWORKS”, filedJul. 27, 2012 and/or pending U.S. patent application Ser. No. 13/722,769filed Dec. 20, 2012, and entitled “APPARATUS AND METHODS FORSTATE-DEPENDENT LEARNING IN SPIKING NEURON NETWORKS”, each of theforegoing being incorporated herein by reference in its entirety.

In one or more implementations, the one or more learning rules may beconfigured to comprise one or more reinforcement learning, unsupervisedlearning, and/or supervised learning as described in co-owned andco-pending U.S. patent application Ser. No. 13/487,499 entitled“STOCHASTIC APPARATUS AND METHODS FOR IMPLEMENTING GENERALIZED LEARNINGRULES, incorporated herein by reference in its entirety.

In one or more implementations, the one or more leaning rules may beconfigured in accordance with focused exploration rules such asdescribed, for example, in U.S. patent application Ser. No. 13/489,280entitled “APPARATUS AND METHODS FOR REINFORCEMENT LEARNING IN ARTIFICIALNEURAL NETWORKS”, filed Jun. 5, 2012, the foregoing being incorporatedherein by reference in its entirety.

Adaptive controller (e.g., the controller apparatus 102 of FIG. 1) maycomprise an adaptable predictor block configured to, inter alia, predictcontrol signal (e.g., 108) based on the sensory input (e.g., 106 inFIG. 1) and teaching input (e.g., 104 in FIG. 1). FIGS. 2A-3B illustrateexemplary adaptive predictor configurations in accordance with one ormore implementations.

FIG. 2A illustrates an adaptive controller apparatus 200 operable inaccordance with a learning process that is based on a teaching signal,according to one or more implementations. The adaptive controllerapparatus 200 of FIG. 2A may comprise a control entity 212, an adaptivepredictor 222, and a combiner 214. The learning process of the adaptivepredictor 222 may comprise supervised learning process, reinforcementlearning process, and/or a combination thereof. The control entity 212,the predictor 222 and the combiner 214 may cooperate to produce acontrol signal 220 for the plant 210. In one or more implementations,the control signal 220 may comprise one or more motor commands (e.g.,pan camera to the right, turn right wheel forward), sensor acquisitionparameters (e.g., use high resolution camera mode), and/or otherparameters.

The control entity 212 may be configured to generate control signal 208based on one or more of (i) sensory input (denoted 206 in FIG. 2A) andplant feedback 216_2. In some implementations, plant feedback maycomprise proprioceptive signals, such as the readings from servo motors,joint position, and/or torque. In some implementations, the sensoryinput 206 may correspond to the controller sensory input 106, describedwith respect to FIG. 1, supra. In one or more implementations, thecontrol entity may comprise a human trainer, communicating with therobotic controller via a remote controller and/or joystick. In one ormore implementations, the control entity may comprise a computerizedagent such as a multifunction adaptive controller operable usingreinforcement and/or unsupervised learning and capable of training otherrobotic devices for one and/or multiple tasks.

The adaptive predictor 222 may be configured to generate predictedcontrol signal u^(P) 218 based on one or more of (i) the sensory input206 and the plant feedback 216_1. The predictor 222 may be configured toadapt its internal parameters, e.g., according to a supervised learningrule, and/or other machine learning rules.

Predictor realizations, comprising plant feedback, may be employed inapplications such as, for example, wherein (i) the control action maycomprise a sequence of purposefully timed commands (e.g., associatedwith approaching a stationary target (e.g., a cup) by a roboticmanipulator arm); and (ii) the plant may be characterized by a plantstate time parameter (e.g., arm inertia, and/or motor response time)that may be greater than the rate of action updates. Parameters of asubsequent command within the sequence may depend on the plant state(e.g., the exact location and/or position of the arm joints) that maybecome available to the predictor via the plant feedback.

The sensory input and/or the plant feedback may collectively be referredto as sensory context. The context may be utilized by the predictor 222in order to produce the predicted output 218. By way of a non-limitingillustration of obstacle avoidance by an autonomous rover, an image ofan obstacle (e.g., wall representation in the sensory input 206) may becombined with rover motion (e.g., speed and/or direction) to generateContext_A. When the Context_A is encountered, the control output 220 maycomprise one or more commands configured to avoid a collision betweenthe rover and the obstacle. Based on one or more prior encounters of theContext_A—avoidance control output, the predictor may build anassociation between these events as described in detail below.

The combiner 214 may implement a transfer function h( ) configured tocombine the control signal 208 and the predicted control signal 218. Insome implementations, the combiner 214 operation may be expressed asdescribed in detail in U.S. patent application Ser. No. 13/842,530entitled “ADAPTIVE PREDICTOR APPARATUS AND METHODS”, filed Mar. 15,2013, as follows:û=h(u,u ^(P)).  (Eqn. 1)

Various realizations of the transfer function of Eqn. 1 may be utilized.In some implementations, the transfer function may comprise an additionoperation, a union, a logical ‘AND’ operation, and/or other operations.

In one or more implementations, the transfer function may comprise aconvolution operation. In spiking network realizations of the combinerfunction, the convolution operation may be supplemented by use of afinite support kernel such as Gaussian, rectangular, exponential, and/orother finite support kernel. Such a kernel may implement a low passfiltering operation of input spike train(s). In some implementations,the transfer function may be characterized by a commutative propertyconfigured such that:û=h(u,u ^(P))=h(u ^(P) ,u).  (Eqn. 2)

In one or more implementations, the transfer function of the combiner214 may be configured as follows:h(0,u ^(P))=u ^(P).  (Eqn. 3)

In one or more implementations, the transfer function h may beconfigured as:h(u,0)=u.  (Eqn. 4)

In some implementations, the transfer function h may be configured as acombination of realizations of Eqn. 3-Eqn. 4 as:h(0,u ^(P))=u ^(P), and h(u,0)=u,  (Eqn. 5)

In one exemplary implementation, the transfer function satisfying Eqn. 5may be expressed as:h(u,u ^(P))=(1−u)×(1−u ^(P))−1.  (Eqn. 6)

In one such realization, the combiner transfer function configuredaccording to Eqn. 3-Eqn. 6, thereby implementing an additive feedback.In other words, output of the predictor (e.g., 218) may be additivelycombined with the control signal (208) and the combined signal 220 maybe used as the teaching input (204) for the predictor. In someimplementations, the combined signal 220 may be utilized as an input(context) signal 228 into the predictor 222.

In some implementations, the combiner transfer function may becharacterized by a delay expressed as:{circumflex over (u)}(t _(i+1))=h(u(t _(i)),u ^(P)(t _(i))).  (Eqn. 7)

In Eqn. 7, û(t_(i+1)) denotes combined output (e.g., 220 in FIG. 2A) attime t+Δt. As used herein, symbol t_(N) may be used to refer to a timeinstance associated with individual controller update events (e.g., asexpressed by Eqn. 7), for example t₁ denoting time of the first controloutput, e.g., a simulation time step and/or a sensory input frame step.In some implementations of training autonomous robotic devices (e.g.,rovers, bi-pedaling robots, wheeled vehicles, aerial drones, roboticlimbs, and/or other robotic devices), the update periodicity Δt may beconfigured to be between 1 ms and 1000 ms.

It will be appreciated by those skilled in the arts that various otherrealizations of the transfer function of the combiner 214 (e.g.,comprising a Heaviside step function, a sigmoidal function, such as thehyperbolic tangent, Gauss error function, or logistic function, and/or astochastic operation) may be applicable.

Operation of the predictor 222 learning process may be aided by ateaching signal 204. As shown in FIG. 2A, the teaching signal 204 maycomprise the output 220 of the combiner:u ^(d) =û.  (Eqn. 8)

In some implementations wherein the combiner transfer function may becharacterized by a delay τ (e.g., Eqn. 7), the teaching signal at timet_(i) may be configured based on values of u, u^(P) at a prior timet_(i−1), for example as:u _(d)(t _(i))=h(u(t _(i−1)),u ^(P)(t _(i−1))).  (Eqn. 9)

The training signal u^(d) at time t_(i) may be utilized by the predictorin order to determine the predicted output u^(P) at a subsequent timet_(i+1), corresponding to the context (e.g., the sensory input x) attime t_(i);u ^(P)(t _(i+1))=F[x _(i) ,W(u ^(d)(t _(i)))].  (Eqn. 10)

In Eqn. 10, the function W may refer to a learning process implementedby the predictor.

In one or more implementations, such as illustrated in FIGS. 2A-2B, thesensory input 206/306, the control signal 208/308, the predicted output218/318, the combined output 220, 340 and/or plant feedback 216, 236 maycomprise spiking signal, analog signal, and/or a combination thereof.Analog to spiking and/or spiking to analog signal conversion may beeffectuated using, mixed signal spiking neuron networks, such as, forexample, described in U.S. patent application Ser. No. 13/313,826entitled “APPARATUS AND METHODS FOR IMPLEMENTING LEARNING FOR ANALOG ANDSPIKING SIGNALS IN ARTIFICIAL NEURAL NETWORKS”, filed Dec. 7, 2011,and/or co-pending U.S. patent application Ser. No. 13/761,090 entitled“APPARATUS AND METHODS FOR GATING ANALOG AND SPIKING SIGNALS INARTIFICIAL NEURAL NETWORKS”, filed Feb. 6, 2013, incorporated supra.

Output 220 of the combiner e.g., 214 in FIG. 2A, may be gated. In someimplementations, the gating information may be provided to the combinerby the control entity 212. In one such realization of spiking controlleroutput, the control signal 208 may comprise positive spikes indicativeof a control command and configured to be combined with the predictedcontrol signal (e.g., 218); the control signal 208 may comprise negativespikes, where the timing of the negative spikes is configured tocommunicate the control command, and the (negative) amplitude sign isconfigured to communicate the combination inhibition information to thecombiner 214 so as to enable the combiner to ‘ignore’ the predictedcontrol signal 218 for constructing the combined output 220.

In some implementations of spiking signal output, the combiner 214 maycomprise a spiking neuron network; and the control signal 208 may becommunicated via two or more connections. One such connection may beconfigured to communicate spikes indicative of a control command to thecombiner neuron; the other connection may be used to communicate aninhibitory signal to the combiner network. The inhibitory signal mayinhibit one or more neurons of the combiner the one or more combinerinput neurons of the combiner network thereby effectively removing thepredicted control signal from the combined output (e.g., 220 in FIG.2B).

The gating information may be provided to the combiner via a connection224 from another entity (e.g., a human operator controlling the systemwith a remote control, and/or external controller) and/or from anotheroutput from the controller 212 (e.g. an adapting block, or an optimalcontroller). In one or more implementations, the gating informationdelivered via the connection 224 may comprise one or more of: a command,a memory address of a register storing a flag, a message, an inhibitoryefficacy, a value (e.g., a weight of zero to be applied to the predictedcontrol signal 218 by the combiner), and/or other information capable ofconveying gating instructions to the combiner.

The gating information may be used by the combiner network to inhibitand/or suppress the transfer function operation. The suppression (or‘veto’) may cause the combiner output (e.g., 220) to be comprised solelyof the control signal portion 218, e.g., configured in accordance withEqn. 4.

In one or more implementations, the gating signal 224 may comprise aninhibitory indication that may be configured to inhibit the output fromthe combiner. Zero combiner output may, in some realizations, may causezero teaching signal (e.g., 214 in FIG. 2A) to be provided to thepredictor so as to signal to the predictor a discrepancy between thetarget action (e.g., controller output 208) and the predicted controlsignal (e.g., output 218).

The gating signal 224 may be used to veto predictor output 218 based on,for example, the predicted control output 218 being away from the targetoutput by more than a given margin. The margin may be configured basedon an application and/or state of the trajectory. For example, a smallermargin may be applicable in navigation applications wherein the platformis proximate to a hazard (e.g., a cliff) and/or an obstacle. A largererror may be tolerated when approaching one (of many) targets.

By way of a non-limiting illustration, if the turn is to be completedand/or aborted (due to, for example, a trajectory change and/or sensoryinput change), and the predictor output may still be producing turninstruction to the plant, the gating signal may cause the combiner toveto (ignore) the predictor contribution and to pass through thecontroller contribution.

Predicted control signal 218 and the control input 208 may be ofopposite signs. In one or more implementations, positive predictedcontrol signal (e.g., 218) may exceed the target output that may beappropriate for performance of as task (e.g., as illustrated by data oftrials 8-9 in Table 3). Control signal 208 may be configured to comprisenegative signal (e.g., −10) in order to compensate for overprediction bythe predictor.

Gating and/or sign reversal of controller output may be useful, forexample, responsive to the predictor output being incompatible with thesensory input (e.g., navigating towards a wrong target). Rapid (comparedto the predictor learning time scale) changes in the environment (e.g.,appearance of a new obstacle, target disappearance), may require acapability by the controller (and/or supervisor) to ‘overwrite’predictor output. In one or more implementations compensation foroverprediction may be controlled by a graded form of the gating signaldelivered via the connection 224.

FIG. 2B illustrates combiner apparatus configured to operate withmultichannel control inputs and/or control signals. The combiner 242 ofFIG. 2B may receive an M-dimensional (M>1) control input 238. Thecontrol input U may comprise a vector corresponding to a plurality ofinput channels (e.g., 238_1, 238_2 in FIG. 2B). Individual channels, maybe configured to communicate individual dimensions (e.g., vectors) ofthe input U, as described in detail in U.S. patent application Ser. No.13/842,647 entitled “MULTICHANNEL ROBOTIC CONTROLLER APPARATUS ANDMETHODS”, filed Mar. 15, 2013, incorporated supra. The combiner output240 may be configured to operate a plant (e.g., the plant 110, in FIG. 1and/or the plant 210 in FIG. 2A).

In some implementations, the predictor 232 may comprise a singlemultichannel predictor capable of generating N-dimensional (N>1)predicted signal 248 based on a multi-channel training input 234 andsensory input 36. In one or more implementations, the predictor 232 maycomprise multiple individual predictor modules (232_1, 232_2) configuredto generate individual components of the multi-channel output (248_1,248_2). In some implementations, individual teaching signal may bede-multiplexed into multiple teaching components (234_1, 234_2).Predictor 232 learning process may be configured to adapt predictorstate based on teaching signal 234.

The predicted signal U^(P) may comprise a vector corresponding to aplurality of output channels (e.g., 238_1, 238_2 in FIG. 2B). Individualchannels 248_1, 248_2 may be configured to communicate individualdimensions (e.g., vectors) of the signal 238.

The combiner 242 may be operable in accordance with a transfer functionh configured to combine signals 238, 248 and to producesingle-dimensional control signal 240:û=h(U,U ^(P)).  (Eqn. 11)In one or more implementations, the combined control signal 240 may beprovided to the predictor as the training signal. The training signalmay be utilized by the predictor learning process in order to generatethe predicted output 248 (e.g., as described with respect to FIG. 2A,supra).

In some implementations, a complex teaching signal may be decomposedinto multiple components that may drive adaptation of multiple predictorblocks (associated with individual output channels. Prediction of a(given) teaching signal 234 may be spread over multiple predictor outputchannels 248. Once adapted, outputs of multiple predictor blocks 232 maybe combined thereby providing prediction of the teaching signal (e.g.,234 in FIG. 2B). Such an implementation may increase the number ofteaching signals that can be mediated using a finite set of controlsignal channels. Mapping between the control signal 238, the predictoroutput 248, the combiner output 240, and the teaching signal 234 maycomprise various signal mapping schemes. In some implementations,mapping schemes may include one to many, many to one, some to some, manyto some, and/or other schemes.

In spiking neuron networks implementations, inputs (e.g., 238, 248 ofFIG. 2B) into the combiner 242 may comprise signals encoded using spikelatency and/or spike rate. In some implementations, inputs into thecombiner may be encoded using one encoding mechanism (e.g., rate). Inone or more implementations, inputs into the combiner may be encodedusing single two (or more) encoding mechanisms (e.g., rate, latency,and/or other).

The use of multiple input signals (238_1, 238_2 in FIG. 2B) and/ormultiple predictor output channels (e.g., 248_1, 248_2 in FIG. 2B) tocommunicate a single control signal 240 (e.g., control signal U and/orpredicted control signal U^(P)) may enable more robust data transmissionwhen compared to a single channel per signal data transmission schemes.Multichannel data transmission may be advantageous in the presence ofbackground noise and/or interference on one or more channels. In someimplementations, wherein individual channels are characterized bybandwidth that may be lower than the data rate requirements for thetransmitted signal (e.g., control signal U and/or predicted controlsignal U^(P)) multichannel data transmission may be utilized tode-multiplex the higher data rate signal onto two or more lower capacitycommunications channels (e.g., 248_1, 248_2 in FIG. 2B). In someimplementations, the output encoding type may match the input encodingtype (e.g., latency in-latency out). In some implementations, the outputencoding type may differ from the input encoding type (e.g., latencyin-rate out).

Combiner 242 operation, comprising input decoding-output encodingmethodology, may be based on an implicit output determination. In someimplementations, the implicit output determination may comprise,determining one or more input values using latency and/or rate inputconversion into e.g., floating point and/or integer; updating neurondynamic process based on the one or more input values; and encodingneuron output into rate or latency. In one or more implementations, theneuron process may comprise a deterministic realization (e.g.,Izhikevich neuron model, described for example in co-owned U.S. patentapplication Ser. No. 13/623,842, entitled “SPIKING NEURON NETWORKADAPTIVE CONTROL APPARATUS AND METHODS”, filed Sep. 3, 2012,incorporated supra; and/or a stochastic process such as described, forexample, in U.S. patent application Ser. No. 13/487,533, entitled“SYSTEMS AND APPARATUSES FOR IMPLEMENTING TASK-SPECIFIC LEARNING USINGSPIKING NEURONS”, incorporated supra.

In some implementations, combiner operation, comprising inputdecoding-output encoding methodology, may be based on an explicit outputdetermination, such as, for example, expressed by Eqn. 4-Eqn. 9, Eqn.14.

In one or more implementations, a predictor may be configured to predictmultiple teaching signals, as illustrated in FIG. 2C. The adaptivecontroller system 270 of FIG. 2C may be utilized responsive toinformation capacity of the predictor output channel (e.g., how muchinformation may be encoded onto a single channel) is higher thaninformation capacity of teaching signal. In some implementations, acombination of the above approaches (e.g., comprising two or moreteaching signals and two or more predictor output channels) may beemployed.

The adaptive controller system 270 may comprise a multiplexing predictor272 and two or more combiner apparatus 279. Controller input U may bede-multiplexed into two (e.g., input 278_1 into combiners 279_1, 279_2)and/or more (input 278_2 into combiners 279_1, 279_2, 279_3). Individualcombiner apparatus 279 may be configured to multiplex one (or more)controller inputs 278 and two or more predictor outputs U^(P) 288 toform a combined signal 280. In some implementations, the predictoroutput for a given combiner may be spread (de-multiplexed) over multipleprediction channels (e.g., 288_1, 288_2 for combiner 279_2). In one ormore implementations, teaching input to a predictor may be delivered viamultiple teaching signal 274 associated with two or more combiners.

The predictor 272 may operate in accordance with a learning processconfigured to determine an input-output transformation such that theoutput of the predictor U^(P) after learning is configured to match theoutput of the combiner h(U, U^(P)) prior to learning (e.g., when U^(P)comprises a null signal).

Predictor transformation F may be expressed as follows:U ^(P) =F({circumflex over (U)}),Û=h(U ^(P)).  (Eqn. 12)

In some implementations, wherein dimensionality of control signal Umatches dimensionality of predictor output U^(P), the transformation ofEqn. 12 may be expressed in matrix form as:U ^(P) =FÛ,Û=HU ^(P) ,F=inv(H),  (Eqn. 13)where H may denote the combiner transfer matrix composed of transfervectors for individual combiners 279 H=[h1, h2, . . . , hn], Û=[û1, û2,. . . ûn] may denote output matrix composed of output vectors 280 ofindividual combiners; and F may denote the predictor transform matrix.The combiner output 280 may be provided to the predictor 272 and/oranother predictor apparatus as teaching signal 274 in FIG. 2D. In someimplementations, (e.g., shown in FIG. 2B), the combiner output 280 maybe provided to the predictor 272 as sensory input signal (not shown inFIG. 2C).

In some implementations of multi-channel predictor (e.g., 232, 272)and/or combiner (e.g., 242, 279) various signal mapping relationshipsmay be utilized such as, for example, one to many, many to one, some tosome, many to some, and/or other relationships (e.g., one to one).

In some implementations, prediction of an individual teaching signal(e.g., 234 in FIG. 2B) may be spread over multiple prediction channels(e.g., 248 in FIG. 2B). In one or more implementations, an individualpredictor output channel (e.g., 288_2 in FIG. 2C) may contain predictionof multiple teaching signals (e.g., two or more channels 274 in FIG.2C).

Transfer function h (and or transfer matrix H) of the combiner (e.g.,242, 279 in FIGS. 2B-2C) may be configured to perform a state spacetransformation of the control signal (e.g., 38, 238 in FIGS. 2B-2C)and/or predicted signal (e.g., 248, 288 in FIGS. 2B-2C). In one or moreimplementations, the transformation may comprise one or more of atime-domain to frequency domain transformations (e.g., Fouriertransform, discrete Fourier transform, discrete cosine transform,wavelet and/or other transformations), frequency domain to time domaintransformations (e.g., inverse Fourier transform, inverse discreteFourier transform, inverse discrete cosine transform, and/or othertransformations), wavenumber transform, and/or other transformations.The state space transformation may comprise an application of a functionto one (or both) input parameters (e.g., u, u^(P)) into the combiner. Insome implementations, the function may be selected from an exponentialfunction, logarithm function, a Heaviside step function, and/or otherfunctions.

In implementations where the combiner is configured to perform thestate-space transform (e.g., time-space to frequency space), thepredictor may be configured to learn an inverse of that transform (e.g.,frequency-space to time-space). Such predictor may be capable oflearning to transform, for example, frequency-space input û intotime-space output u^(P).

In some implementations, predictor learning process may be configuredbased on one or more look-up tables (LUT). Table 1 and Table 2illustrate use of look up tables for learning obstacle avoidancebehavior (e.g., as described with respect to Table 3-Table 5 and/or FIG.7, below).

Table 1-Table 2 present exemplary LUT realizations characterizing therelationship between sensory input (e.g., distance to obstacle d) andcontrol signal (e.g., turn angle cc relative to current course) obtainedby the predictor during training. Columns labeled N in Table 1-Table 2,present use occurrence N (i.e., how many times a given control actionhas been selected for a given input, e.g., distance). Responsive to aselection of a given control action (e.g., turn of 15°) based on thesensory input (e.g., distance from an obstacle of 0.7 m), the counter Nfor that action may be incremented. In some implementations of learningcomprising opposing control actions (e.g., right and left turns shown byrows 3-4 in Table 2), responsive to a selection of one action (e.g.,turn of)+15° during learning, the counter N for that action may beincremented while the counter for the opposing action may bedecremented.

As seen from the example shown in Table 1, as a function of the distanceto obstacle falling to a given level (e.g., 0.7 m), the controller mayproduce a turn command. A 15° turn is most frequently selected duringtraining for distance to obstacle of 0.7 m. In some implementations,predictor may be configured to store the LUT (e.g., Table 1) data foruse during subsequent operation. During operation, the most frequentlyused response (e.g., turn of) 15° may be output for a given sensoryinput, in one or more implementations, In some implementations, thepredictor may output an average of stored responses (e.g., an average ofrows 3-5 in Table 1).

TABLE 1 d α° N 0.9 0 10 0.8 0 10 0.7 15 12 0.7 10 4 0.7 5 1 . . . 0.5 453

TABLE 2 d α° N 0.9 0 10 0.8 0 10 0.7 15 12 0.7 −15 4 . . . 0.5 45 3

FIG. 3A illustrates an adaptive predictor configured to develop anassociation between a control action and sensory context, according toone or more implementations. The control system 300 of FIG. 3A maycomprise an adaptive predictor 302 and a combiner 312. The combiner 312may receive an action indication 308 from a control entity (e.g., theapparatus 342 of FIG. 3B and/or 212 of FIG. 2A).

In some implementations of a control system, such as described withrespect to FIGS. 3A-3B, the controller (e.g., 342 in FIG. 3B) may beconfigured to issue a higher level control directive, e.g., the actionindication 308, 348, in FIGS. 3A-3B that are not directly communicatedto the plant (2040) but rather are directed to the predictor (e.g., 302,322 in FIGS. 3A-3B). As used herein the term “action indication” may beused to refer to a higher level instruction by the controller that isnot directly communicated to the plant. In one or more implementations,the action indication may comprise, for example, a directive ‘turn’,‘move ahead’. In some implementations, the control system may utilize ahierarchy of action indications, ranging from less complex/more specific(e.g., turn, move) to more abstract: approach, avoid, fetch, park, grab,and/or other instructions.

Action indications (e.g., 308, 348 in FIGS. 3A-3B) may be configuredbased on sensory context (e.g., the sensory input 306, 326 in FIGS.3A-3B). In one or more implementations, the context may correspond topresence of an object (e.g., a target and/or an obstacle), and/or objectparameters (e.g., location), as illustrated in FIG. 5. Panels 500, 510in FIG. 5 illustrate position of a robotic device 502, comprising forexample, a control system (e.g., 300, 320 of FIGS. 3A-3B). The controlsystem may comprise a controller and a predictor. The device 502 may beconfigured to approach a target 508, 518. The controller of the device502 may provide an action indication A1 504, A2 514 that may beconfigured in accordance with the sensory context, e.g., the location ofthe object 508, 518 with respect to the device 502. By way of anon-limiting example, responsive to the object 508 being to the right ofthe device 502 trajectory (as shown in the panel 500), the actionindication A1 504 may indicate an instruction “turn right”. Responsiveto the object 508 being to the left of the device 502 trajectory (asshown in the panel 510), the action indication A2 514 may indicate aninstruction “turn left”. Responsive to the sensory context and theinstruction 504, the predictor of the device control system may generatelow level motor commands (e.g., depicted by broken arrows 506, 516 inFIG. 5) to execute the respective 90° turns to right/left.

Returning now to FIG. 3A, the control system 300 may comprise thecombiner 312 configured to receive the controller action indication A308 and predicted action indication 318. In some implementations, thecombiner 312 may be operable in accordance with any applicablemethodologies, e.g., described with respect to FIGS. 2A-3C, above.

The predictor 302 may be configured to generate the predicted actionindication A^(P) 318 based on the sensory context 306 and/or trainingsignal 304. In some implementations, the training signal 304 maycomprise the combined output A.

In one or more implementations, generation of the predicted actionindication 318 may be based on the combined signal A being provided as apart of the sensory input (316) to the predictor. In someimplementations comprising the feedback loop 318, 312, 316 in FIG. 3A,the predictor output 318 may be combined with the controller actionindication 308. The combiner 310 output signal 312 may be used as aninput 316 to the predictor. Predictor realizations, comprising actionindication feedback connectivity, may be employed in applications,wherein (i) the action indication may comprise a sequence of timedactions (e.g., hitting a stationary target (e.g., a nail) with a hammerby a robotic arm); (ii) the predictor learning process may be sensorydriven (e.g., by the sensory input 306) in absence of plant feedback(e.g., 336 in FIG. 3B); and (iii) the plant may be characterized by aplant state time parameter that may be greater than the rate of actionupdates (e.g., the sequence of timed actions 308). It may beadvantageous for the predictor 302 to account for a prior action withinthe sequence (e.g., via the feedback input 316) so as to take intoaccount the effect of its previous state and/or previous predictions inorder to make a new prediction. Such methodology may be of use inpredicting a sequence of actions/behaviors at time scales where theprevious actions and/or behavior may affect the next actions/behavior,e.g., when a robotic manipulator arm may be tasked to fill with coffeethree cups one a tray: completion of the first action (filling one cup)may leave the plant (arm) closes to another cup rather than the startinglocation (e.g., coffee machine). The use of feedback may reduce coffeeserving time by enabling the arm to move from one cup to another withoutreturning to the coffee machine in between. In some implementations (notshown), action feedback (e.g., 316 in FIG. 3A) may be provided to otherpredictors configured to predict control input for other tasks (e.g.,filling the coffee pot with water, and/or placing the pot into thecoffee maker).

In some implementations, generation of the predicted action indicationA^(P) by the predictor 302 may be effectuated using any of theapplicable methodologies described above (e.g., with respect to FIGS.2A-3C). The predictor may utilize a learning process based on theteaching signal 304 in order to associate action indication A with thesensory input 306 and/or 316.

The predictor 302 may be further configured to generate the plantcontrol signal 314 low level control commands/instructions based on thesensory context 306. The predicted control signal 314 may be interfacedto a plant. In some control implementations, such low-level commands maycomprise instructions to rotate a right wheel motor by 30°, apply motorcurrent of 100 mA, set motor torque to 10%, reduce lens diaphragmsetting by 2, and/or other commands. The low-level commands may beconfigured in accordance with a specific implementation of the plant,e.g., number of wheels, motor current draw settings, diaphragm settingrange, gear ration range, and/or other parameters.

In some implementations of target approach, such as illustrated in FIG.5, a predictor may be configured to learn different behaviors (e.g.,generate different motor output commands) based on the received sensorycontext. Responsive to: (i) a target appearing on right/left (withrespect to the robotic plant); and (ii) ‘turn’ action indication thepredictor may learn to associate a turn towards the target (e.g.,right/left turn 506, 516 in FIG. 5). The actual configuration of theturn commands, e.g., rate of turn, timing, turn angle, may be configuredby the predictor based on the plant state (platform speed, wheelposition, motor torque) and/or sensory input (e.g., distance to target,target size) independent of the controller.

Responsive to the ‘turn’ command arriving to the predictor proximate intime to the sensory context indicative of a target, the predictor maygenerate right/left turn control signal in the presence of the sensorycontext. Time proximity may be configured based on a particularapplication parameters (e.g., robot speed, terrain, object/obstaclesize, location distance, and/or other parameters). In some applicationsto garbage collecting robot, the turn command may be time locked (towithin +10 ms) from the sensory context indicative of a need to turn(for example toward a target). In some realizations, a target appearingto the right of the robot in absence of obstacles may trigger the action‘turn right’.

During learning predictor may associate movement towards the target(behavior) with the action indication. Subsequently during operation,the predictor may execute the behavior (e.g., turn toward the target)based on a receipt of the action indication (e.g., the ‘turn’instruction). In one or more implementations, the predictor may beconfigured to not generate control signal (e.g., 314 in FIG. 3A) inabsence of the action tag (e.g., 308 and/or 304). In other words, thepredictor may learn to execute the expected (learned) behaviorresponsive to the presence of the action indication (informing whataction to perform, e.g., turn) and the sensory input (informing thepredictor where to turn).

Such associations between the sensory input and the action indicator mayform a plurality of composite motor primitive comprising an actionindication (e.g., A=turn) and actual control instructions to the plantthat may be configured in accordance with the plant state and sensoryinput.

In some implementations, the predictor may be configured to learn theaction indication (e.g., the signal 308 in FIG. 3B) based on the priorassociations between the sensory input and the action tag. The predictormay utilize learning history corresponding to a sensory state (e.g.,sensory state x1 described with respect to Table 5) and the occurrenceof the action tag contemporaneous to the sensory context x1. By way ofillustration, based on two or more occurrences (prior to time t1) of thetag A=‘turn’ temporally proximate to a target object (e.g., 508, 518 inFIG. 5) being present to one side from the robotic device 502, thepredictor may (at time t1) generate the tag (e.g., signal 318) inabsence of the tag input 308.

Based on learning of associations between action tag-control command;and/or learning to generate action tags, the predictor may be able tolearn higher-order control composites, such as, for example, ‘approach’,‘fetch’, ‘avoid’, and/or other actions, that may be associated with thesensory input.

FIG. 3B is a block diagram illustrating an control system comprising anadaptive predictor configured to generate control signal based on anassociation between control action and sensory context, according to oneor more implementations.

The control system 320 may comprise controller 342, predictor 322, plant340, and one or more combiners 330, 350. The controller 342 may beconfigured to generate action indication A 348 based on sensory input326 and/or plant feedback 336. The controller 342 may be furtherconfigured to generate one or more low-level plant control commands(e.g., 346) based on sensory input 326 and/or plant feedback 336. Insome control implementations, the low-level commands 346 may compriseinstructions to rotate a right wheel motor by 30°, apply motor currentof 100 mA, set motor torque to 10%, reduce lens diaphragm setting by 2,and/or other commands. The low-level commands may be configured inaccordance with a specific implementation of the plant, e.g., number ofwheels, motor current draw settings, diaphragm setting range, gearration range, and/or other parameters.

One or more of the combiners of the control system of FIG. 3B (e.g.,330_1) may be configured to combine an action indication (e.g., tag A)348_1, provided by the controller, and the predicted action tag A^(P)from the predictor to produce a target action tag A 332_1.

One or more of the combiners (e.g., 350) may be configured to combine acontrol command 346, provided by the controller, and the predictedcontrol instructions u^(P) 344, provided by the predictor, to produceplant control instructions û=h(u,u^(P)) (e.g., 352).

The predictor 322 may be configured to perform prediction of (i) one ormore action indications 348; and/or plant control signal u^(P) 352 thatmay be associated with the sensory input 326 and/or plant feedback 336.The predictor 322 operation may be configured based on two or moretraining signals 324, 354 that may be associated with the actionindication prediction and control command prediction, respectively. Inone or more implementations, the training signals 324, 354 at time t2may comprise outputs of the respective combiners 330, 350 at a priortime (e.g., t1=t2−dt), as described above with respect to Eqn. 7.

The predictor 322 may be operable in accordance with a learning processconfigured to enable the predictor to develop associations between theaction indication input (e.g., 348_1) and the lower-level control signal(e.g., 352). In some implementations, during learning, this associationdevelopment may be aided by plant control instructions (e.g., 346) thatmay be issued by the controller 342. One (or both) of the combinedaction indication signal (e.g., 332_1) and/or the combined controlsignal (e.g., 352) may be utilized as a training input (denoted in FIG.3B by the arrows 324_1, 354, respectively) by the predictor learningprocess. Subsequent to learning, once the predictor has associated theaction indicator with the sensory context, the low-level control signal(e.g., 346) may be withdrawn by the controller. Accordingly, the controlsystem 320 of FIG. 3B may take configuration of the control system 300shown in FIG. 3A.

In some implementations, the combined action indication signal (e.g.,332) and/or the combined control signal (e.g., 352) may be provided tothe predictor as a portion of the sensory input, denoted by the arrows356 in FIG. 3B.

In one or more implementations, two or more action indications (e.g.,348_1, 348_2 _(—) may be associated with the control signal 352. By wayof a non-limiting example, illustrated for example in FIG. 14, thecontroller apparatus 320 may be configured to operate a roboticplatform. Action indication 348_1 may comprise a higher level controltag ‘turn right’; the action indication 348_2 may comprise a higherlevel control tag ‘turn left’. Responsive to receipt of sensory input356, 326 and/or teaching input 324, 354 the predictor 322 may learn toassociate, for example, ‘turn right’ action tag with a series of motorinstructions (e.g., left wheel rotate forward right, right wheel rotatebackwards) with one (or more) features (e.g., object type and location)that may be present within the sensory input. Such association s may bereferred to as a composite task (e.g., comprising tag and a motoroutput).

Upon learning these composite tasks, the predictor 322 may be providedwith a higher level action indication (e.g., 348_3). The term ‘higherlevel’ may be used to describe an action (e.g., ‘approach’/‘avoid’) thatmay comprise one or more lower level actions (e.g., 348_1, 348_2, ‘turnright’/‘turn left’). In some implementations, the higher level actionindication (e.g., 348_3) may be combined (by, e.g., the combiner 330_3in FIG. 3B) with a predicted higher level action indication (not shownin FIG. 3B). The combined higher level action indication may be providedto the predictor as a teaching signal and/or sensory input (not shown inFIG. 3B. One or more levels of action indications may form a hierarchyof actions, also referred to as primitives or subtasks.

Control action separation between the predictor 302, 322 (configured toproduce the plant control signal 314, 352) and the controller 342(configured to provide the action indication 348) described above, mayenable the controller (e.g., 342 in FIG. 3B) to execute multiple controlactions (e.g., follow a target while avoiding obstacles)contemporaneously with one another.

Control action separation between the predictor 302, 322 (configured toproduce the plant control signal 314, 352) and the controller 342(configured to provide the action indication 348) described above, mayenable the controller (e.g., 342 in FIG. 3B) to execute multiple controlactions (e.g., follow a target while avoiding obstacles)contemporaneously with one another.

The controller 342 may be operable in accordance with a reinforcementlearning (RL) process. In some implementations, the RL process maycomprise a focused exploration methodology, described for example, inco-owned U.S. patent application Ser. No. 13/489,280 entitled “APPARATUSAND METHODS FOR REINFORCEMENT LEARNING IN ARTIFICIAL NEURAL NETWORKS”,filed Jun. 5, 2012, incorporated supra.

The predictor 322 may be operable in accordance with a supervisedlearning (SL) process. In some implementations, the supervised learningprocess may be configured to cause output that is consistent with theteaching signal. Output consistency may be determined based on one ormore similarity measures, such as correlation, in one or moreimplementations.

Reinforcement learning process of the controller may rely on one or moreexploration techniques. In some implementations, such exploration maycause control signal corresponding one or more local minima of thecontroller dynamic state. Accordingly, small changes in the controllerinput (e.g., sensory input 326 in FIG. 3B) may cause substantial changesin the control signal responsive to a convergence of the controllerstate to another local minimum. Exploration of reinforcement learningmay require coverage of a full state space associated with thecontroller learning process (e.g., full range of heading, tilt,elevation for a drone searching for a landing strip). State explorationby reinforcement learning may be time consuming and/or may require moresubstantial computational and/or memory resources when compared tosupervised learning (for the same spatial and temporal resolution).Training signal used by supervised learning may limit exploration bypointing to a region within the state space where the target solutionmay reside (e.g., a laser pointer used for illuminating a potentialtarget). In some implementations, the supervised learning may be faster(e.g., converge to target solution with a target precision in shorteramount of time) compared to reinforcement learning. The use of targetsignal during training may enable the SL process to produce a morerobust (less varying) control signal for a given set of sensory input,compared to the RL control signal. For a given size/capability of asoftware/hardware controller platform, reinforcement learning mayperform fewer tasks (a single task in some implementations) compared tosupervised learning that may enable the controller platform to executeseveral (e.g., 2-10 in some implementations). In one or moreimplementations, reinforcement learning signal may be provided by humanoperator.

Exemplary operation of adaptive controller system (e.g., 200, 230, 270of FIGS. 2A-2C, respectively) is now described in detail. The predictorand/or the controller of the adaptive controller system may be operatedin accordance with an update process configured to be effectuatedcontinuously and/or at discrete time intervals Δt, described above withrespect to Eqn. 7.

The control signal (e.g., 208 in FIG. 2A) may be provided at a ratebetween 1 Hz and 1000 Hz. A time scales T_(plant) describing dynamics ofthe respective plant (e.g., response time of a rover and/or an aerialdrone platform, also referred to as the behavioral time scale) may varywith the plant type and comprise scales on the order of a second (e.g.,between 0.1 s to 2 s).

The transfer function of the combiner of the exemplary implementation ofthe adaptive controller apparatus 200, may be configured as follows:û=h(u,u ^(P))=u+u ^(P).  (Eqn. 14)

Training of the adaptive predictor (e.g., 222 of FIG. 2A) may beeffectuated via a plurality of trials. In some implementations, trainingof a mechanized robot and/or an autonomous rover may comprise between 5and 50 trials. Individual trials may be configured with duration thatmay be sufficient to observe behavior of the plant (e.g., execute a turnand/or another maneuver), e.g., between 1 and 10 s.

In some implementations the trial duration may last longer (up to tensof second) and be determined based on a difference measure betweencurrent performance of the plant (e.g., current distance to an object)and a target performance (e.g., a target distance to the object). Theperformance may be characterized by a performance function as describedin detail in co-owned and co-pending U.S. patent application Ser. No.13/487,499 entitled “STOCHASTIC APPARATUS AND METHODS FOR IMPLEMENTINGGENERALIZED LEARNING RULES, incorporated supra. Individual trials may beseparated in time (and in space) by practically any durationcommensurate with operational cycle of the plant. By way ofillustration, individual trial when training a robot to approach objectsand/or avoid obstacles may be separated by a time period and/or spacethat may be commensurate with the robot traversing from oneobject/obstacle to the next. In one or more implementations, the robotmay comprise a rover platform, and/or a robotic manipulator armcomprising one or more joints. e.g., as shown and described with respectto FIG. 4A.

FIG. 4A illustrates a robotic apparatus comprising multiple controllablecomponents operable in two or more degrees of freedom (DoF). Theapparatus 400 may comprise a platform 402 configured to traverse therobotic apparatus 400 in a direction indicated by arrow 424. In someimplementations, the platform may comprise one or more motor drivenwheels (e.g., 404) and/or articulated wheels.

The platform may be adapted to accept a telescopic arm 410 disposedthereupon. The arm 410 may comprise one or more portions (e.g., boom412, portion 414) configured to be moved in directions shown by arrows406 (telescope boom 412 in/out), 422 (rotate the portion 414 up/down),and/or other directions. A utility attachment 415 may be coupled to thearm 414. In one or more implementations, the attachment 415 may comprisea hook, a grasping device, a ball, and/or any applicable attachment. Theattachment 415 may be moved in direction shown by arrow 426. The arm 410may be configured to elevate up/down (using for example, motor assembly411) and/or be rotated as shown by arrows 420, 428 respectively in FIG.4A.

FIG. 4B-4C illustrate robotic controller realizations configuredconsistent with a phenotype of the robotic apparatus of FIG. 4A. Thecontroller 450 of FIG. 4B may comprise a plurality of controls elementsadapted to manipulate the platform 402 (e.g., controls 462, 464), andthe arm 410 (e.g., the controls 452, 454, 456, 458). One or more of thecontrols 452, 454, 456, 458, 462, and/or 464 may comprise joystick,slider, another control type (e.g., knob 478 described with respect toFIG. 4C), and/or other controls. The control elements in FIGS. 4B-4C maycomprise hardware elements and/or software control rendered, forexample, on a touch screen of a portable computerized device (e.g.,smartphone, tablet, and/or other portable device). In someimplementations, the control elements may include the configuration of acontactless motion sensing interface system, with and/or without anexplicit indication as to the current configuration. In the case of anexplicit indication, for example, the configuration may be indicated byrepresentations displayed via a screen, or via changes on a device heldby the user to perform the motions, or via light projected onto thesource of motion (e.g., onto the hands of the human operator).

The control elements 464, 462 may be configured to operate alongdirections 462, 460, respectively. The control elements 464, 462 may beconfigured to control two dimensional motion of the platform 402 (shownby arrows 424, 429, respectively in FIG. 4A). The control elements 456,462, 464 may be configured to operate along direction 463. The controlelements 456, 462, 464 may be configured to control vertical motion ofthe attachment 415, the arm 410, the boom 412, and/or other components.The control element 458 may be adapted to control the horizontalorientation of the arm 410 (e.g., as shown by the arrow 428 in FIG. 4A).Another control element(s) (not shown) may be used to control therotation 422 of the portion 414.

In some implementations of the robotic device (e.g., the roboticapparatus 400), the portion 414 may be omitted during deviceconfiguration, and/or configured to extend and/or retract (e.g., by atelescoping action). The controller 450 interface may be configured inaccordance with modification of the robotic device, by for example,providing an additional control element (not shown) to control theextension of the portion 414. In some implementations, in order toreduce the number of controls, additional control operations may beeffectuated by contemporaneous motion of two or more control elements.By way of example, simultaneous motion of control elements 454, 456 mayeffectuate extension control of the portion 414.

The controller 457 of FIG. 4C may comprise a plurality of controlselements adapted to manipulate the platform 402 (e.g., controls 482,480), and the arm 410 (e.g., the controls 472, 474, 476, 478). One ormore of the controls 472, 474, 476, 480 may comprise joystick, sliderand/or another linear motion control type. The elements 478, 482 maycomprise rotary motion controls (e.g., knobs) configured to be rotatesas shown by arrows 486, 488, respectively. The control elements in FIGS.4B-4C may comprise hardware elements and/or software control rendered,for example, on a touch screen of a portable computerized device (e.g.,smartphone, tablet).

FIG. 6A illustrates an exemplary trajectory of a rover configured tolearn obstacle avoidance. The rover 610 may be configured to avoid walls602, 604. In some implementations, the avoidance policy may compriseexecution of a 45° turn, e.g., 606, 608 in FIG. 6A. As used hereindesignators TN may be used to refer to a time of a given trial (e.g., T1denoting time of first trial). During first trial, at time T1:

-   -   the predictor (e.g., 222 of FIGS. 2A-2B) may receive control        signal u1 (e.g., turn right 45°) from control entity 212. The        control signal may correspond to sensory input x1 (e.g., 206,        216 in FIG. 2A) that may be received by the controller and/or        the predictor; such signal may comprise a representation of an        obstacle (e.g., a wall), and/or a target (e.g., a charging        dock);    -   the predictor may be configured to generate predicted control        signal (e.g., u1^(P)=0°);    -   the combiner may produce combined output u1′=45°; and    -   the plant 210 may begin to turn right in accordance with the        combined output (e.g., 220).

During another trial at time T2>T1:

-   -   the predictor 222 may receive control signal u2 (e.g., still        turn right 45°) from the controller 212;    -   the plant feedback may indicate to the predictor that the plant        is executing a turn (in accordance with the prior combined        output u1′); accordingly, the predictor may be configured to        ‘mimic’ the prior combined output u1′ and to generate predicted        control signal (e.g., u2^(P)=10°);    -   the combiner may produce new combined output u2′=55°; and    -   the plant 210 may increase the turn rate in accordance with the        updated control signal u2′.

During another trial at time T3>T2:

-   -   the input x3 may indicate to the controller 212 that the plant        turn rate is in excess of the target turn rate for the 40° turn;        the controller 212 may reduce control signal to u3=35°;    -   based on the input x3, indicative of e.g., the plant turn rate        for u2′=55°, the predictor may be configured to increase its        prediction to e.g., u3^(P)=20°; and    -   the combiner (e.g., 210 of FIG. 2A) may receive control signal        u3 (e.g., turn right) 35° from the controller 212; the combiner        may produce the combined output u3′=55°.

During other trials at times Ti>T3 the predictor output may be increasedto the target plant turn of 45° and the control signal 208 may bereduced to zero. In some implementations, the outcome of the aboveoperational sequence may be referred to as (gradual) transfer of thecontrol signal to the predictor output. A summary of one implementationof the training process described above may be summarized using datashown in Table 1:

TABLE 3 Control Predicted Combined Error signal u signal u^(P) signal û(û − u) Trial # [deg] [deg] [deg] [deg] 1 45 0 45 0 2 45 10 55 10 3 3520 55 10 4 25 35 60 15 5 25 50 60 15 6 0 55 55 10 7 0 55 55 10 8 −10 5545 0 9 −10 50 40 −5 10 0 45 45 0

As seen from Table 3, when the predictor is capable to producing thetarget output (e.g., trial #10), the control signal (e.g., 208 in FIG.2A) may be withdrawn (removed). The output of the combiner (e.g., 214)in such realizations may comprise the predictor output in accordancewith, for example, Eqn. 14.

In some implementations, the control entity (e.g., 212 in FIG. 2A) maycomprise a human trainer of the robot. In one or more implementations,the control entity may comprise an adaptive system operable inaccordance with a learning process. In one or more implementations, thelearning process of the controller may comprise one or morereinforcement learning, unsupervised learning, supervised learning,and/or a combination thereof, as described in co-owned and co-pendingU.S. patent application Ser. No. 13/487,499 entitled “STOCHASTICAPPARATUS AND METHODS FOR IMPLEMENTING GENERALIZED LEARNING RULES”,incorporated supra.

In one or more implementations, the training steps outlined above (e.g.,trials summarized in Table 3) may occur over two or more trials whereinindividual trial extend over behavioral time scales (e.g., one second totens of seconds).

In some implementations, the training steps may occur over two or moretrials wherein individual trials may be characterized by control updatescales (e.g., 1 ms to 1000 ms).

In some implementations, the operation of an adaptive predictor (e.g.,222 in FIG. 2A) may be characterized by predictor learning within agiven trial as illustrated and described with respect to Table 4.

FIG. 6B illustrates training of a robotic rover device to approach atarget. The robot 622 in FIG. 6B may be configured to approach thetarget 642 (e.g., a ball, a charging station, and/or other target).Training may comprise a plurality of trials 620, 664, 626, 628 wherein ateacher may train the rover to perform a target approach along a targettrajectory (e.g., depicted by broken line arrow 630). As used hereindesignators TN may be used to refer to a time of a given trial (e.g., T1denoting time off trial 620). In some implementations, the teacher maycomprise a human trainer. The robot may comprise an adaptive controller,e.g., the controller 200 of FIG. 2A. During one or more initial trials(e.g., 630 in FIG. 6B) the teacher may direct the robot 622 along thetarget trajectory 630. In some implementations, the teacher may employ ademonstration using teleoperation, using one or more applicable userinterfaces. Such interfaces may include one or more of: a remotecontroller (e.g. joystick, nunchuck, and/or other devices), voicecommands (e.g., go forward, go left or right, and/or other voicecommands), a gesture recognition system (e.g., Kinect), and/or otherinterfaces.

In one or more implementations, the teacher may employ a demonstrationwith so-called kinesthetic teaching, wherein the robot is physicallyguided (e.g., ‘dragged’) through the trajectory by the teacher. In thisapproach, the adaptive controller learning process may comprise aninverse model of the robotic platform. The adaptive controller may beconfigured to translate the changes in the observed robot sensory spaceto the motor actions that would result in the same sensory space.

In one or more implementations, the robot may employ learning by amimicking methodology. The robot may be configured to observe ademonstrator performing the desired task and may learn to perform thesame task on its own.

While following the target trajectory, a learning process of the robotcontroller may learn (e.g., via adaptation of learning parameters) aninterrelationship between the sensory input, the controller state,and/or the teaching input. In the realization illustrated in FIG. 6B,the sensory input may comprise data related to robot motion parameters(position, orientation, speed, acceleration and/or other parameters)and/or target information (distance to, color, shape, and/or otherinformation). The teaching input may comprise a motion directive (e.g.,joystick forward and/or other directive), motor control commands (e.g.,rotate left wheel clockwise and/or other commands) and/or other teachinginput. In some implementations, during the teacher-guided trials (e.g.,620), the motor control output (e.g., 220 in FIG. 2A) may be configuredsolely on the control input from the teacher in accordance with Eqn. 4.

Upon completion of one or more teacher-guided trials, the robot 622 maybe configured to perform one or more teacher-assisted trials (e.g., thetrials 624, 626, 628 in FIG. 6B). During a teacher-assisted trial theadaptive controller of the robot 622 may be configured to generate apredicted control signal (e.g., 218 in FIG. 2A). The predicted controlsignal may be combined with the user input using any of themethodologies described herein and/or other methodologies. During thetrial 624, the robot may process along trajectory portion 634. In someimplementations, the user may withdraw its guidance during the traversalof the trajectory portion 634 by the robot so as to assess an ability ofthe robot to navigate the target trajectory. The trajectory portion 634may deviate from the target trajectory 630. Upon determining that thetrajectory deviation (denoted by the arrow 638) exceeds a maximumdeviation for the task, the user may assist the controller of the robotby providing user input. In some implementations, the user input may beconfigured to assist the robot by providing a correction (e.g., turnright by 110°, indicted by the arrow 636). In one or moreimplementations, the user input may comprise reward/penalty signals tothe robot. The reward/penalty signal may be based on the robot enteringgiven states (e.g., reward for robot orienting itself towards thetarget, penalty for orienting away from the target, and/or otherstates); and/or taking certain actions while traversing a trajectory. Insome implementations, the user input may comprise a warning and/or acorrection signal (e.g., more to the right).

The teacher may utilize a reset signal configured to reset to a basestate configuration of the learning process. In some implementations,such reset may be used to reset neuron states and/or connection weightsof a predictor based on predictor generating predicted signal that maybe inconsistent (e.g., guides the robot away from a target in targetapproach task) with the target action.

In some implementations, the learning process may be configured to storeintermediate learning stages corresponding to one or more portions ofthe trajectory traversal. By way of illustration, the trajectoryportions 638, 640 in FIG. 6B may be stored as individual learning stages(partitions) based on an occurrence of a tag signal. The tag signal maybe received from the teacher and/or generated internally by thecontroller based on one or more criteria (e.g., rate of change ofmotion, distance from target, performance measure and/or other measure).A reset signal may be utilized to reset (clear) learning data associatedwith the portion 640, while the data related to the portion 638 mayremain intact. In some implementations, the adaptive controller may beconfigured to store its state at the time of the tag signal. Uponreceiving a reset signal at a subsequent time, the controller may beconfigured to retain learning data occurring prior to the tag, whileresetting data occurred subsequent to the tag.

During individual trials 624, 626, 628 user assistance may be providedone or more times, as illustrated by arrows 636, 646, 648 in FIG. 6B.

While following a trajectory during trials 624, 626, 628, a learningprocess of the robot controller may learn (e.g., via adaptation oflearning parameters) an interrelationship between the sensory input, thecontroller state (e.g., predicted control signal), and/or the teachinginput.

During successive trials 624, 626, 628 the performance of the robot mayimprove as determined based on a performance measure. In someimplementations, the performance measure may comprise a discrepancymeasure between the actual robot trajectory (e.g., 632, 634) and thetarget trajectory. The discrepancy measure may comprise one or more ofmaximum deviation, maximum absolute deviation, average absolutedeviation, mean absolute deviation, mean difference, root mean squattererror, cumulative deviation, and/or other measures.

Upon completion of one or more teacher-assisted trials (e.g., 624, 628),the robot 622 may be configured to navigate the target trajectory absentuser input (not shown in FIG. 6B). The learning by the robot duringprevious trials may enable navigation of the target trajectory by therobot that is within the training performance margin. It is noteworthythat, during user-assisted training trials, the user and the robot maycooperate with one another (e.g., via the use of the combiners 310, 330of FIGS. 3A-3B) in order to accomplish target action (e.g., navigate thetrajectory 630 of FIG. 6B).

Learning by the adaptive controller apparatus (e.g., 200 FIG. 2) mayenable transfer of information (‘knowledge’) from the user (e.g.,control signal e.g., 208 in FIG. 2A) to the robot (e.g., predictedcontrol output (e.g., 218 in FIG. 2A) of the adaptive controller). Asused herein the term ‘knowledge’ may refer to changes to the adaptivecontroller state needed to reproduce, in its predictions (e.g., 218 inFIG. 2A), the signals previously produced by the control signal (e.g.,208 in FIG. 2A), but in the absence of continued control signal.

It is noteworthy that, in accordance with the principles of the presentdisclosure, the information transfer (such as described with respect toFIG. 6B) may occur not instantaneously but gradually on time scales thatare in excess of the robot adaptive controller update intervals.Initially (e.g., at time T1 in FIG. 6A), the user may be capable ofcontrolling the robot in accordance with the target trajectory.Subsequently (e.g., at time T>Tn in FIG. 6B), the adaptive controllermay be capable of controlling the robot in accordance with the targettrajectory. There may exist an intermediate state (e.g., T2, T3, Tn inFIG. 6B) wherein: (i) both the adaptive controller and the user areattempting to operate the robot in accordance with the target trajectory(e.g., the user provides the control signal 208, the adaptive controllergenerates the predicted control signal 218; (ii) the combined output(e.g., 220) is inadequate (either too large or too small) to achieve thetarget trajectory within the performance bounds; and/or other states.

In one or more implementations, the adaptive controller may beconfigured to generate the predicted signal u^(P) such that it closelyreproduces the initial control signal u. This is shown in Table 3, wherepredicted signal at trial 10 matches the initial control signal at trial1.

In one or more implementations, such as described in owned U.S. patentapplication Ser. No. 13/842,530 entitled “ADAPTIVE PREDICTOR APPARATUSAND METHODS”, filed Mar. 15, 2013, the adaptive controller may beconfigured to predict cumulative (e.g., integrated over the trialduration) outcome of the control action.

FIG. 6C illustrates training of a robotic device (e.g., the rover 610)to follow a target using results of prior training to avoid obstaclesand approach targets (e.g., as that described with respect to FIGS.6A-6B, respectively).

The rover 610 in FIG. 6C may be configured to approach/follow a ball618, while avoiding obstacles (e.g., 612) and/or the walls 602, 604 inFIG. 6C. The environment of FIG. 6C may comprise three individualtargets (e.g., balls shown by circles 618_1, 618_2, 618_3). In someimplementations, the circles 618_1, 618_2, 618_3 may correspond toindividual positions of a ball that may be moving (e.g., by a trainer)within the environment. The trainer may utilize a remote controlapparatus in order to provide training input to the rover, e.g., asindicated by arrows 613, 615 in FIG. 6C. In one or more implementations,the remote control apparatus may comprise an adaptive controllerconfigured based on rover's hardware and/or operational characteristics,e.g., as described in U.S. patent application Ser. No. 13/907,734entitled “ADAPTIVE ROBOTIC INTERFACE APPARATUS AND METHODS”, filed May31, 2013, incorporated supra. In one or more implementations, the remotecontrol apparatus may comprise a clicker apparatus, and training maycomprise determination of a cost-function, e.g., as described in U.S.patent application Ser. No. 13/841,980 entitled “ROBOTIC TRAININGAPPARATUS AND METHODS”, filed Mar. 15, 2013, the forgoing beingincorporated herein by reference in its entirety. By way of anon-limiting illustration, based on the user input 615, the rover mayrespond by altering its trajectory to segment 616 thereby avoiding theobstacle 612. Based on the user input 613, the rover may respond byaltering its trajectory to segment 614 thereby effectuating approach tothe target 618_1. Responsive to movement of the target, the rover maycontinue target approach maneuvers. In some implementations, during theapproach to the targets 618_2, 618_3, the user input may diminish withtime. In one or more implementations, the user input may comprisemodulated input shown and described with respect to FIGS. 7A-7G, below.

Task execution (e.g. target approach and/or obstacle avoidance) maycomprise development of hierarchical control functionality, e.g.,described with respect to FIGS. 12-13 below. The interfaces illustratedin FIGS. 12-13 may be utilized, for example, for controlling roboticrover 610 of FIGS. 6A, 6C, robotic apparatus 400 of FIG. 4A, and/orapparatus 1160 of FIG. 11. FIG. 12 illustrates development of ahierarchy of control elements, in accordance with one or moreimplementations. The control group 1200 may comprise one or more controlelements denoted by circles (e.g., 1202). The control elements of thegroup 1200 disposed to one side of zero mark 1208 (e.g., 1202, 1204) maybe used to control forward motion of a robotic platform (e.g., 402 inFIG. 4A) and/or arm 410 in FIG. 4A. The control elements of the group1200 disposed to another side of zero mark 1208 (e.g., 1208) may be usedto control reverse motion of the robotic apparatus. A larger sizecontrol element (e.g., 1202) may effectuate motion of greater magnitude(e.g., speed, displacement, and/or acceleration). Control operationscorresponding to individual control elements of the group 1200 may bereferred to as primitives of a given (e.g., first) hierarchy level. Oneor more implementations of hierarchy development is described withrespect to FIG. 14, below. Control elements of group 1200 may utilizecontrol primitives of a lower hierarchy (e.g., individual motoractivations 1420, 1422 in FIG. 14). It will be appreciated thatcontrolling a robotic device comprising multiple controllable elements(e.g., the apparatus 400 of FIG. 4A) using the interface comprisingmultiple control primitives (e.g., the element of the group 1200) mayrequire heightened attention from a user and/or sufficient real estateon the remote controller. Upon completing training of a robotic deviceto perform the functionality associated with individual controls of thegroup 1200, the robotic controller interface may be configured toimplement a higher-level primitives, as shown by the controls 1210, 1220in FIG. 12. In one or more implementations, the interface configurationmay be performed by a user using a library of customizable controlelements. In some implementations, the interface configuration may beperformed adaptively, e.g., based on a user request and/or uponcompletion of the training. The control primitive 1210 may comprise ajoystick and/or a rocker 1214 configured to be moved in the directionshown by the arrow 1212. Magnitude of the control displacement along thedirection 1212 may encode the magnitude of the control input, in someimplementations. The control primitive 1220 may comprise a pair ofcontrol elements 1222, 1224 (e.g., soft buttons). Activating individualbuttons 1222, 1224 may cause forward/backward displacement of thecontroller entity. Duration of the button activation may encode themagnitude of the control input, in some implementations. In one or moreimplementations, the magnitude of the control input may be determined bythe adaptive controller based on prior experience obtained duringlearning. In one or more implementations, the prior experience may bebased on developed associations between sensory context and user controlinput.

FIG. 13 illustrates a higher hierarchy level (e.g., compared to theelements shown in FIG. 12) control primitives, in accordance with one ormore implementations. The control elements 1300, 1302 may correspond,for example, to commands to the robot to approach target and avoidobstacle, respectively. The controls 1300, 1302 may utilize one or moreprimitives of a lower level (e.g., control element shown in FIG. 12and/or other control elements). Activating control primitive 1320 may beutilized to enable a toy robot to engage in a game of fetch. In one ormore implementations, the fetch activity may comprise following and/orretrieving a target (e.g., a ball) while avoiding obstacles (e.g.,walls, and or furniture). Activating control primitive 1330 may beutilized to enable a mine disposal robot to condense mine disposalactivity robot to engage in a game of fetch. In one or moreimplementations, the disposal may comprise detecting and/or approachingthe mine, disposing a disposal charge, retreating while avoidingobstacles (e.g., rocks, craters, and/or other mines), and/or otheractions.

Higher level primitives of the hierarchy may be developed based on auser request. In some implementations, the user may utilize one or moretags indicating, e.g., an operating sequence configured to beimplemented as a higher hierarchy level control. By way of illustration,a user may transmit a start tag, perform one or more control operations,(e.g., manipulate the controls 452, 454, 456 of FIG. 4B to reach for atarget using the arm 410), and/or perform other actions. Responsive toreceipt of a stop tag, the controller may generate a higher levelcontrol (e.g., 1222 configured to perform control actions between thestart and the stop tags). In one or more implementations, the higherlevel primitives of the hierarchy may be developed proactively based ona feedback from the controller. By way of an illustration, responsive toa detection of use of several lower level controls (e.g., the forwardcontrols 1202, 1204 in FIG. 12), the controller may prompt a user as togeneration of a higher level ‘forward’ control is to be performed.Responsive to a detection of multiple activations of the same control(e.g., the control 1204 in order to move farther forward), thecontroller may prompt a user as to generation of a higher level‘high-speed forward’ control is to be performed.

A hierarchy of control elements and/or primitives, e.g., as describedabove with respect to FIGS. 12-13) may be utilized to implement a fusedcontrol of a robotic apparatus comprising multiple controllable elements(e.g., the apparatus 400 of FIG. 4A). In some implementations,activating forward and/or backward motion control (e.g., 1224, 1222) maycause operation of the arm elements over multiple controllable degreesof freedom (e.g., shown by arrows 420, 406, 422 in FIG. 4A). The controlprimitives 1224, 1222 may replace multiple control elements configuredto control individual degrees of freedom (e.g., the elements 452, 454,456 in FIG. 4B). In one or more implementations of a controller for therobotic apparatus 400 of FIG. 4A, activating the primitive 1224 mayenable reaching of a target object by the utility attachment 415 of thearm 410. The object reaching may be based on activating forward motionof the platform 402 and/or forward motion of one or more arm elements410, 412, 414.

The higher-level (e.g., composite) controls (e.g., 1300, 1320, 1330) maycomprise audio commands, gestures, eye tracking, brain-machine interfaceand/or other communication methodologies. In some implementations, auser may associate an audio command tag with a specific task. Forexample, an audio tag such as ‘forward’ or ‘fetch’ may be associatedwith commanding the robot to move forward or play fetch, respectively.In some implementations, the robotic controller may comprise an audioprocessing block configured to store a characteristic (e.g., aspectrogram) associated with the command tag (e.g., word ‘fetch’). As apart of generating a given higher-level control primitive, thecontroller may accept user input comprising a tag associated with thegiven higher-level control primitive. The tag may comprise an audio tag(e.g., voice command, clap, and/or other audio tag), a clicker sequence,a pattern (e.g., gesture, touch, eye movement, and/or other pattern),and/or other tag. Such an approach may alleviate a need for implementingrecognition functionality (e.g., voice or gesture recognition) withinthe robotic device thereby enabling reduction of cost and/or complexityof the robot. The voice tag approach may be utilized by a user whosenative language (e.g., English) may differ from that of the robotdesigner or manufacturer (e.g., Japanese) so as obviating a need tofollow phonetic and pronunciation particulars of the designer'slanguage. It will be appreciated by those skilled in the art thatcommand tags may not need to relate to the task subject. The user mayselect to use arbitrary commands (e.g., ‘one’, ‘two’) in order tocommand the robot to move forward, backward. The tag provision may beprompted by the controller (e.g., via a prompt “How would you like toterm the new control?”). The tag may be associated with a visiblecontrol element disposed on the control interface (e.g., say ‘one’ foraction 1, say ‘two’ for action 2, and/or other visible control element).Upon accepting a user tag, the controller may store a tag characteristic(e.g., spectrogram, a pattern template, and/or another characteristic)for future tag detection. In one or more implementations, the tagdetection may be effectuated based on a template matching approach,e.g., based on a cross correlation of user input and tag template (e.g.,spectrogram). In some implementations, the tag detection may beeffectuated based on a classification approach, for example, asdescribed in U.S. patent application Ser. No. 13/756,372 entitled“SPIKING NEURON CLASSIFIER APPARATUS AND METHODS USING CONDITIONALLYINDEPENDENT SUBSETS”, filed Jan. 31, 2013, the foregoing beingincorporated herein by reference in its entirety.

FIG. 14 illustrates one example of a hierarchy of actions for use with,for example, controller of FIG. 3B. An action indication 1400 maycorrespond to a higher level composite action, e.g., ‘approach’,‘avoid’, ‘fetch’, and/or other action. The composite action indication1400 may be configured to trigger execution of or more actions 1410,1412, 1414 (also referred to as subtasks). The subtasks 1410, 1412, 1414may correspond to lower level actions (in the hierarchy of FIG. 14),such as ‘turn right’, ‘turn left’, ‘go forward’, respectively.

The subtasks (e.g., 1410, 1412, 1414 in FIG. 14) may be associated withone (or more) control signal instructions, e.g., signal 352 describedwith respect to FIG. 3B, supra. Individual second level subtasks (e.g.,1410, 1412, 1414 in FIG. 14) may be configured to invoke one or morelower level subtasks (e.g., third in FIG. 14). Subtasks 1420, 1422 maycorrespond to instructions configured to activate right/left motors ofthe robotic platform. In some implementations, subtasks that may beinvoked by one or more higher level tasks and/or that may be configuredto generate motor control instructions may be referred to as themotor-primitives (e.g., 1420, 1422 in FIG. 14).

Subtasks of a given level (e.g., 1400, 1408 and/or 1410, 1412, 1414 inFIG. 14) may comprise one or more activation parameters associated withlower level subtasks (e.g., 1410, 1412, 1414, and/or 1420, 1422respectively in FIG. 14). The parameters (e.g., 1402, 1404, 1406) maycomprise one or more of an execution order, weight, turn angle, motionduration, rate of change, torque setting, drive current, shutter speed,aperture setting, and/or other parameters consistent with the hardwareand/or software configuration.

As illustrated in FIG. 14, the task 1400 (e.g., approach target) maycomprise a 30° right turn followed by a 9 second forward motion. Theparameters 1402, 1404, 1406 may be configured as follows:

-   -   O=1, w=30;    -   O=0; and    -   O=2, w=9; respectively.

The task 1408 may correspond to avoid target and may invoke right/leftturn and/or backwards motion tasks 1410, 1412, 1416, respectively.

Individual tasks of the second level (e.g., 1410, 1412, 1414, 1416 inFIG. 14) may cause execution of one or more third level tasks (1420,1422). The parameters 1430, 1432, 1434, 1436, 1438, 1440 may beconfigured as follows:

-   -   to execute right turn: rotate forward left motor with torque of        0.5; (w=0.5), rotate right motor backwards with torque of 0.5;        (w=−0.5);    -   to execute left turn: rotate right motor backwards with torque        of 0.5; (w=−0.5), rotate forward right motor with torque of 0.5;        (w=0.5);    -   to move forward: rotate forward left motor with torque of 0.5;        (w=0.5), rotate forward right motor with torque of 0.5; (w=0.5);        and    -   to move backwards: rotate left motor backwards with torque of        0.5; (w=−0.5), rotate right motor backwards with torque of 0.5;        (w=−0.5).

The hierarchy illustrated in FIG. 14 may comprise another level (e.g.,1430) that may be configured to implement pursue functionality. In oneor more implementations, the pursue functionality may trigger targetapproach task 1400 and/or obstacle avoidance task 1408.

In one or more implementations wherein the predictor comprises a spikingneuron network, learning a given behavior (e.g., obstacle avoidanceand/or target approach) may be effectuated by storing an array ofefficacies of connections within the predictor network. In someimplementations, the efficacies may comprise connection weights,adjusted during learning using any applicable methodologies. In someimplementations, connection plasticity (e.g., efficacy adjustment) maybe implemented based on the teaching input as follows:

-   -   based on a teaching input (e.g., spike) and absence of neuron        output spike connections delivering input spikes into the neuron        (active connection) that precede the teaching spike (within a        plasticity window), may be potentiated; and/or    -   based on neuron output spike in absence of teaching input,        active connections delivering input spikes into the neuron        (active connection)) that precede the output spike (within a        duration specified by plasticity window), may be depressed.        In some implementations wherein the sensory input may be updated        at 40 ms intervals and/or control signal may be updated at a        rate of 1-1000 Hz, the duration of the plasticity window may be        selected between 1 ms and 1000 ms. Upon learning a behavior,        network configuration (e.g., an array of weights) may be stored        for future use by the predictor.

Individual network portions may be configured to implement individualadaptive predictor realizations. In some implementations, one networkportion may implement object approach predictor while another networkportion may implement obstacle avoidance predictor. Another networkportion may implement a task predictor (e.g., fetch). In someimplementations, predictors implemented by individual network portionsmay form a hierarchy of predictors. Lower-level predictors may beconfigured to produce control (e.g., motor) primitives (also referred toas the pre-action and/or pre-motor output). Higher level predictors mayprovide output comprising predicted obstacle avoidance/target approachinstructions (e.g., approach, avoid).

In some implementations of a fetch task (comprising for example targetapproach and/or obstacle avoidance), the lower level predictors maypredict execution of basic actions (so called, motor primitives), e.g.,rotate left with v=0.5 rad/s for t=10 s.

Predictors of a higher level within the hierarchy, may be trained tospecify what motor primitive to run and with what parameters (e.g., v,t).

At a higher level of hierarchy, the predictor may be configured to plana trajectory and/or predict an optimal trajectory for the robot movementfor the given context.

At yet another higher level of the hierarchy, a controller may beconfigured to determine a behavior that is to be executed at a giventime, e.g. now to execute the target approach and/or to avoid theobstacle.

In some implementations, a hierarchy actions may be expressed as:

-   -   top level=behavior selection;    -   2nd level=select trajectory;    -   3rd level=activate motor primitives to execute given trajectory;        and    -   4th level=issue motor commands (e.g. PWM signal for motors) to        execute the given motor primitives.

In one or more implementations of hierarchy of predictors, lower levelpredictors may provide inputs to higher level predictors. Suchconfiguration may advantageously alleviate the higher level predictorfrom performing all of the functionality that may be required in orderto implement target approach and/or obstacle avoidance functionality.

The hierarchical predictor configuration described herein may beutilized for teaching a robotic device to perform a new task (e.g.,behavior B3 comprised of reaching a target (behavior B1) while avoidingobstacles (behavior B2). The hierarchical predictor realization mayenable a teacher (e.g., a human and/or computerized operator) to dividethe composite behavior B3 into two or more subtasks (B1, B2). In one ormore implementations, performance of the subtasks may be characterizedby lower processing requirements by the processing block associated withthe respective predictor; and/or may require less time in order toarrive at a target level of performance during training, compared to animplementation wherein all of the behaviors (B1, B2, B3) are learnedconcurrently with one another. Predictors of lower hierarchy may betrained to perform subtasks B1, B2 in a shorter amount of time usingfewer computational and/or memory resources, compared to time/resourcebudget that may be required for training a single predictor to performbehavior B3.

When training a higher hierarchy predictor to perform new task (e.g., B3acquire a target), the approach described above may enable reuse of thepreviously learnt task/primitives (B1/B2) and configured the predictorto implement learning of additional aspects that may be associated withthe new task B3, such as B3a reaching and/or B3b grasping.

If another behavior is to be added to the trained behavior list (e.g.,serving a glass of water), previously learned behavior(s) (e.g.,reaching, grasping, and/or others, also referred to as the primitives)may be utilized in order to accelerate learning compared toimplementations of the prior art.

Reuse of previously learned behaviors/primitives may enable reduction inmemory and/or processing capacity (e.g., number of cores, core clockspeed, and/or other parameters), compared to implementations wherein allbehaviors are learned concurrently. These advantages may be leveraged toincrease processing throughput (for a given neuromorphic hardwareresources) and/or perform the same processing with a reduced complexityand/or cost hardware platform.

Learning of behaviors and/or primitives may comprise determining aninput/output transformation (e.g., the function F in Eqn. 10, and/or amatrix F of Eqn. 13) by the predictor. In some implementations, learninga behavior may comprise determining a look-up table and/or an array ofweights of a network as described above. Reuse of previously learnedbehaviors/primitives may comprise restoring/copying stored LUTs and/orweights into predictor realization configured for implementing learnedbehavior. FIGS. 7A-7G depict various user input waveforms useful fortraining of robotic devices during trials, such as show and describedwith respect to FIGS. 6A-6B, above.

FIG. 7A depicts modulated user input provided to a robotic device duringone or more training trials for use, for example, with the targetapproach training of FIG. 6B, according to one or more implementations.The user input of FIG. 7A may comprise a plurality of user inputs (e.g.,pulses 702, 704, 706, 708) at times t1, t2, t3, t4, t5. The signalmodulation of FIG. 7A may comprise one or more of: a pulse widthmodulation (e.g., pulses 702, 706) having different duration; a pulseamplitude modulation (e.g., pulses 702, 706) having different amplitude;and/or a pulse position modulation (e.g., pulses 702, 704 and 706, 708)occurring at different intervals. In one or more implementations,individual pulses 702, 704, 706, 708 may correspond to user input duringrespective training trials (e.g., 624, 626 and other in FIG. 6B). Insome implementations, the pulses 702, 704, 706, 708 may correspond touser input during a given training trial (e.g., 624 in FIG. 6B).

By way of non-limiting illustration, the waveforms of FIG. 7A may beutilized as follows: during an initial trial (e.g., 624) the user mayprovide user input 702 of a sustained duration and full magnitude 700(e.g., joystick on full forward for 10 second). At a subsequent trial,the user may provide input 704 of a shorter duration and lower magnitude(e.g., turn slightly right, compared to the initial input 702.

FIG. 7B illustrates pulse frequency modulated user input provided to arobotic device during one or more training trials for use, for example,with the target approach training of FIG. 6B, according to one or moreimplementations. Pulses depicted by lines of different styles maycorrespond to different trials. By way of non-limiting illustration, thewaveforms of FIG. BA may be utilized as follows: at an initial trial(pulses depicted by thin line e.g., 712 in FIG. 7B) user may providemore frequent inputs as compared to inputs during subsequent trials,depicted by thick line pulses (e.g., 714). Individual user inputs inFIG. 7B implementation (e.g., pulses 712, 714, 716) may comprise pulsesof fixed amplitude 710 and/or fixed duration.

FIG. 7C illustrates ramp-up modulated user input provided to a roboticdevice during one or more training trials for use, for example, with thetarget approach training of FIG. 6B, according to one or moreimplementations. As used herein, the terms “ramp-up modulated userinput” and/or “ramp-down modulated user input” may be used to describeuser input characterized by a parameter that may progressively increaseand/or decrease, respectively. In none or more implementations, theparameter may comprise input magnitude, frequency, duration, and/orother parameters.

Individual curves 721, 722, 723, 724, 726 may depict user input duringindividual trials (e.g., 620, 624, 626, in FIG. 6B). By way of anon-limiting illustration, the waveforms of FIG. 7C may be utilized asfollows: at an initial trial (shown by the curve 721 in FIG. 7C) theuser may let the robotic device to navigate the trajectory withoutassistance for a period 728. Upon determining a robot's performance, theuser may provide control input of amplitude 720 and duration 729. Duringone or more subsequent trials, the user may delay assistance onset(e.g., increase the time interval 728), and increase duration of theassistance (e.g., increase the time interval 729).

FIG. 7D illustrates ramp-down modulated user input provided to a roboticdevice during one or more training trials for use, for example, with thetarget approach training of FIG. 6B, according to one or moreimplementations. Individual curves 731, 732, 733, 734, 736 may depictuser input during individual trials (e.g., 620, 624, 626, in FIG. 6B).By way of non-limiting illustration, the waveforms of FIG. 7D may beutilized as follows: at an initial trial (shown by the curve 731 in FIG.7D) the user may guide the robotic device to navigate the trajectoryassistance for a period 738 by providing control input 731 of amplitude730. Upon determining robot's performance, the user may withdraw inputfor duration 739. During one or more subsequent trials, the user maydecrease duration of the assistance (e.g., decrease the time interval738).

FIG. 7E illustrates user input, integrated over a trial duration,provided to a robotic device during one or more training trials for use,for example, with the target approach training of FIG. 6B, according toone or more implementations. As shown in FIG. 7E, a magnitude of theuser input may decrease from initial input 740 of maximum magnitude tothe final input 744 of lowest magnitude.

FIG. 7F illustrates pulse width/frequency modulated user input ofconstant magnitude provided to a robotic device during one/or moretraining trials for use, for example, with the target approach trainingof FIG. 6B, according to one or more implementations. At an initialtrial (shown by the pulse 752 in FIG. 7F) the user may assist a roboticdevice to navigate the trajectory for a period 753. In someimplementations, individual pulses (e.g., 752, 754, 756) may correspondto the user activating a control element (e.g., a holding down pedal, ajoystick, a button, and/or other element). Upon determining a robot'sperformance, the user may provide control input of reduced duration(e.g., the duration of pulses 754, 756, 756) during one or moresubsequent trials.

FIG. 7G illustrates pulse frequency modulated user input provided to arobotic device during one or more training trials for use, for example,with the target approach training of FIG. 6B, according to one or moreimplementations. At an initial trial (shown by the pulse group 762 inFIG. 7F) the user may assist a robotic device to navigate the trajectoryusing plurality of pulses within the pulse group 762. In someimplementations, individual pulses (e.g., pulse 763 in the pulse group762) may correspond to the user activating a control element (e.g.,tapping a pedal, engaging a joystick, clicking a button, and/or usingother control element). Upon determining a robot's performance, the usermay provide control input of reduced frequency (e.g., reducing number ofpulses in pulse groups 764, 766, 768 compared to the number of pulses inthe pulse group 762) during one or more subsequent trials.

It may be appreciated by those skilled in the art that the user inputsignal waveforms illustrated in FIGS. 7A-7G represent someimplementations of the disclosure and other signals (e.g., bi-polar,inverted polarity, frequency modulated, phase modulated, code modulated,spike-encoding, audio, visual, and/or other signals) may be utilized forproviding user input to a robot during training.

FIG. 8 illustrates learning a plurality of behaviors over multipletrials by an adaptive controller, e.g., of FIG. 2A, in accordance withone or more implementations. The plurality of vertical marks 802 ontrace 800 denotes control update events (e.g., time grid where controlcommands may be issued to motor controller). In some implementations(not shown) the control events (e.g., 802 in FIG. 8) may be spaced atnon-regular intervals. The arrow denoted 804 may refer to the controltime scale.

The time intervals denoted by brackets 810, 812, 814 may refer toindividual training trials (e.g., trials T1, T2, T3 described above withrespect to Table 3). The arrow denoted 806 may refer to a trial durationbeing associated with, for example, a behavioral time scale.

The arrow denoted 808 may refer to inter-trial intervals and describetraining time scale.

In some implementations, shown and described with respect to FIG. 8, arobotic device may be configured to learn two or more behaviors within agiven time span. By way of illustration, a mechanized robotic arm may betrained to grasp an object (e.g., cup). The cup grasping may becharacterized by two or more behaviors, e.g., B1 approach and B2 grasp.Training for individual behaviors B1, B2 is illustrated in FIG. 8 bytrials denoted as (810, 812, 814), and (820, 822, 824) respectively.

Sensory input associated with the training configuration of trace 800 isdepicted by rectangles on trace 830 in FIG. 8. Individual sensory states(e.g., a particular object and or a feature present in the sensoryinput) are denoted as x1, x2 in FIG. 8. The cup may be present in thesensory input associated with the trial T1, denoted 810 in FIG. 8. Suchpredictor sensory input state may be denoted as x1. The robotic devicemay attempt to learn to approach (behavior B1) the cup at trial 810. Thecup may be absent in the sensory input subsequent to trial 810. Therobotic device may be engaged in learning other behaviors triggered byother sensory stimuli. A different object (e.g., a bottle) denoted as x2in FIG. 8 may be visible in the sensory input. The robotic device mayattempt to learn to grasp (behavior B2) the bottle at trial 812. At asubsequent time, the cup may again be present in the sensory input. Therobotic device may attempt to continue learning to approach (behaviorB1) the cup at trials 812, 814.

Whenever the bottle may be visible in the sensory input, the roboticdevice may continue learning grasping behavior (B2) trials 822, 824. Insome realizations, learning trials of two or more behaviors may overlapin time (e.g., 812, 822 in FIG. 8). The robotic device may be configuredto execute given actions (e.g., learn a behavior) in response to aparticular input stimuli rather than based on a particular time.

Operation of the control entity 212 (e.g., 212 in FIG. 2A) and/or thepredictor (e.g., 222 in FIG. 2A) may be based on the input 206 (e.g.,sensory context). As applied to the above illustration of training arover to turn in response to, e.g., detecting an obstacle, as the roverexecutes the turn, the sensory input (e.g., the obstacle position withrespect to the rover) may change. Predictor training wherein the sensoryinput may change is described below with respect to data summarized inTable 4, in accordance with one or more implementations.

Responsive to the control entity (e.g., a user) detecting an obstacle(sensory input state x1), the control signal (e.g., 208 in FIG. 2A) maycomprise commands to execute a 45° turn. In some implementations, (e.g.,described with respect to Table 1 supra) the turn maneuver may comprisea sudden turn (e.g., executed in a single command, e.g., Turn=45°). Insome implementations, (e.g., described with respect to Table 2) the turnmaneuver may comprise a gradual turn effectuated by two or more turnincrements (e.g., executed in five commands, Turn=9°).

As shown in Table 4 during Trial 1, the control signal is configured at9° throughout the training. The sensory, associated with the turningrover, is considered as changing for individual turn steps. Individualturn steps (e.g., 1 through 5 in Table 2) are characterized by differentsensory input (state and/or context x1 through x5).

At presented in Table 4, during Trial 1, the predictor may be unable toadequately predict controller actions due to, at least in part,different input being associated with individual turn steps. The roveroperation during Trial 1 may be referred to as the controller controlledwith the controller performing 100% of the control.

TABLE 4 Trial 1 Trial 2 Trial 3 Step # State u° u^(P)° û° u° u^(P)° û°u° u^(P)° û° 1 x1 9 0 9 9 3 12 5 6 11 2 x2 9 0 9 8 3 11 2 6 8 3 x3 9 0 97 3 10 3 5 8 4 x4 9 0 9 9 3 12 9 6 15 5 x5 9 0 9 3 3 6 1 5 6 Total 45 045 36 15 51 20 28 48

The Trial 2, summarized in Table 4, may correspond to another occurrenceof the object previously present in the sensory input processes atTrial 1. At step 1 of Trial 2, the control signal may comprise a commandto turn 9° based on appearance of the obstacle (e.g., x1) in the sensoryinput. Based on prior experience (e.g., associated with sensory statesx1 through x5 of Trail 1), the predictor may generate predicted outputu^(P)=3° at steps 1 through 5 of Trial 2, as shown in Table 4. Inaccordance with sensory input and/or plant feedback, the controller mayvary control signal u at steps 2 through 5. Overall, during Trial 2, thepredictor is able to contribute about 29% (e.g., 15° out of 51°) to theoverall control signal u. The rover operation during Trial 2 may bereferred to as jointly controlled by the control entity (e.g., a humanuser) and the predictor. It is noteworthy, neither the predictor nor thecontroller are capable of individually providing target control signalof 45° during Trial 2.

The Trial 3, summarized in Table 4, may correspond to another occurrenceof the object previously present in the sensory input processes atTrials 1 and 2. At step 1 of Trial 3, the control signal may reducecontrol signal 3° turn based on the appearance of the obstacle (e.g.,x1) in the sensory input and/or prior experience during Trial 2, whereinthe combined output u1′ was in excess of the target 9°. Based on theprior experience (e.g., associated with sensory states x1 through x5 ofTrails 1 and 2), the predictor may generate predicted output u^(P)=5°,6° at steps 1 through 5 of Trial 3, as shown in Table 4. Variations inthe predictor output u^(P) during Trial 3 may be based on the respectivevariations of the control signal. In accordance with sensory inputand/or plant feedback, the controller may vary control signal u at steps2 through 5. Overall, during Trial 3, the predictor is able tocontribute about 58% (e.g., 28° out of 48°) to the overall controlsignal û. The combined control signal during Trial 3 is closer to thetarget output of 48°, compared to the combined output (51°) achieved atTrial 2. The rover operation during Trial 2 may be referred to asjointly controlled by the control entity and the predictor. It isnoteworthy, the neither the predictor nor the controller are capable ofindividually providing target control signal of 45° during Trial 3.

At a subsequent trial (not shown) the control signal may be reduced tozero while the predictor output may be increased to provide the targetcumulative turn (e.g., 45°).

Training results shown and described with respect to Table 3-Table 4 arecharacterized by different sensory context (e.g., states x1 through x5)corresponding to individual training steps. Step-to-step sensory noveltymay prevent the predictor from learning control signal during theduration of the trial, as illustrated by constant predictor output u^(P)in the data of Table 3-Table 4.

Table 5 presents training results for an adaptive predictor apparatus(e.g., 222 of FIG. 2A) wherein a given state of the sensory may persistfor two or more steps during a trial, in accordance with one or moreimplementations. Persistence of the sensory input may enable thepredictor to learn control signal during the duration of the trial.

TABLE 5 Trial Step # State u° u^(P)° û° 1 x1 9 0 9 2 x1 9 3 12 3 x1 7 613 4 x2 9 0 9 5 x2 2 3 5 Total 36 12 48

As shown in Table 5, sensory state x1 may persist throughout thetraining steps 1 through 3 corresponding, for example, a view of a largeobject being present within field of view of sensor. The sensory statex2 may persist throughout the training steps 4 through 5 corresponding,for example, another view the large object being present sensed.

At steps 1, 2 of Trial of Table 5, the controller may provide controlsignal comprising a 9° turn control command. At step 3, the predictormay increase its output to 3°, based on a learned association betweenthe control signal u and the sensory state x1.

At step 3 of Trial of Table 5, the controller may reduce its output u to7° based on the combined output u2′=12° of the prior step exceeding thetarget output of 9°. The predictor may increase its output based ondetermining a discrepancy between the sensory state x1 and its prioroutput (3°).

At step 4 of Trial of Table 5, the sensory state (context) may change,due to for example a different portion of the object becoming visible.The predictor output may be reduced to zero as the new context x2 maynot have been previously observed.

At step 5 of Trial of Table 5, the controller may reduce its output u to2° based on determining amount of cumulative control signal (e.g.,cumulative turn) achieved at steps 1 through 4. The predictor mayincrease its output from zero to 3° based on determining a discrepancybetween the sensory state x2 and its prior output u4^(P)=0°. Overall,during the Trial illustrated in Table 5, the predictor is able tocontribute about 25% (e.g., 5° out of 48°) to the overall control signalû.

FIG. 9 illustrates training performance of an adaptive robotic apparatusof, e.g., FIG. 2B, by a user, in accordance with one or moreimplementations. Solid line segments 902, 904, 906, 908 denote errorcorresponding to a difference measure between the actual trajectory ofthe robot (e.g., 632, 634) versus the target trajectory (e.g., 630).Robot operation for a given trial duration (e.g., denoted by arrow 910)may be characterized by varying sensory state (e.g., states x1 throughx5 described with respect to Table 2). In some implementations, theperformance measure may comprise an error described as follows:ε(t _(i))=|u ^(P)(t _(i−1))−u ^(d)(t _(i))|.  (Eqn. 15)In other words, the error may be determined based on (how well) theprior predictor output matches the current teaching (e.g., target)input. In one or more implementations, predictor error may comprise aroot-mean-square deviation (RMSD), coefficient of variation, and/orother parameters.

As shown in FIG. 9, error diminishes as training progresses (e.g., withincreasing trial number. In some implementations, the error may diminishthrough individual trials. The latter behavior may be related to agreater degree of sustained sensory experience by the predictor duringlearning responsive to consistent sensory input.

Various implementations, of methodology for training of robotic devicesare now described. An exemplary training sequence of adaptive controllerapparatus (e.g., 200 of FIG. 2A) may be expressed as follows:

During first trial at time T1:

-   -   the control entity may detect sensory input (e.g., 206, 216_1 in        FIG. 2A) containing x1 and may generate output u1;    -   the predictor may receive the sensory input x1 (or a portion of        thereof), and may be configured to generate predicted control        signal (e.g., u1^(P)=0°);    -   the combiner may produce the combined output û1=45°; this output        may be provided to the predictor as the teaching (target) signal        at a subsequent time instance; and    -   the plant 210 may begin to turn right in accordance with the        combined control signal (e.g., 220) û1=45°.

During another trial at time T2>T1:

-   -   the control entity may detect a sensory input (e.g., 206, 216_1        in FIG. 2A) containing x1 and may generate output û2=45°;    -   the predictor may receive the sensory input x1 (or a portion of        thereof), and the teaching (target) signal û1=45° produced by        the combiner at a prior trial (e.g., T1); the predictor may be        configured to ‘mimic’ the combined output û; the predictor may        be configured to generate predicted control signal (e.g.,        û2^(P)=30°) based on the sensory input, plant feedback and/or        the teaching signal;    -   the combiner may produce the combined output û2=75° (e.g., in        accordance with, for example, Eqn. 7); and    -   the plant 210 may increase the turn rate with the control signal        û2.

During another trial at time T3>T2:

-   -   the control entity may determine that the rate of turn is in        excess of the target turn of 45°, and may generate control        signal û3=0°;    -   the predictor may receive the sensory input x (or a portion of        thereof), and the teaching (target) signal û2=75° produced by        the combiner at a prior trial (e.g., T2); the predictor may be        configured to generate predicted control signal (e.g., û3P=50°)        based on the sensory input, plant feedback and/or the teaching        signal;    -   the combiner may produce the combined output û3=50° (e.g., in        accordance with, for example, Eqn. 7); and    -   the plant 210 may execute the turn in accordance with the        control signal û3.

Subsequently, at times T4, T5, TM>T2 the predictor output to thecombiner 234 may result in the control signal 220 to turn the plant by45° and the control signal 208 may be reduced to zero. In someimplementations, the outcome of the above operational sequence may bereferred to as (gradual) transfer of the control signal to the predictoroutput. When the predictor is capable to producing the target output,the control signal (e.g., 208 in FIGS. 2A-2B) may be withdrawn(removed). The output of the combiner (e.g., 214, 234) may comprise thepredictor output in accordance with, for example, Eqn. 3.

In one or more implementations comprising spiking control and/orpredictor signals (e.g., 208, 218, 248, 220, 240 in FIG. 2A-2B), thewithdrawal of the control signal may correspond to the controller 208generating spike output at a base (background) rate. By way ofillustration, spike output at a (background) rate of 2 Hz may correspondto ‘maintain course’ control signal; output above 2 Hz may indicate aturn command. The turn rate may be encoded as spike rate, number ofspikes, and/or spike latency in various implementations. In someimplementations, zero signal (e.g., control signal 208, predictedcontrol signal 218, and/or combiner output 220) may comprise apre-defined signal, a constant (e.g., a dc offset or a bias), spikingactivity at a mean-firing rate, and/or other zero signal.

FIGS. 10A-10C illustrate methods of training an adaptive apparatus ofthe disclosure in accordance with one or more implementations. Theoperations of methods 1000, 1020, 1040 presented below are intended tobe illustrative. In some implementations, methods 1000, 1020, 1040 maybe accomplished with one or more additional operations not described,and/or without one or more of the operations discussed. Additionally,the order in which the operations of methods 1000, 1020, 1040 areillustrated in FIGS. 10A-10C described below is not intended to belimiting.

In some implementations, methods 1000, 1020, 1040 may be implemented inone or more processing devices (e.g., a digital processor, an analogprocessor, a digital circuit designed to process information, an analogcircuit designed to process information, a state machine, and/or othermechanisms for electronically processing information and/or executecomputer program modules). The one or more processing devices mayinclude one or more devices executing some or all of the operations ofmethods 1000, 1020, 1040 in response to instructions storedelectronically on an electronic storage medium. The one or moreprocessing devices may include one or more devices configured throughhardware, firmware, and/or software to be specifically designed forexecution of one or more of the operations of methods 1000, 1020, 1040.

At operation 1002 of method 1000, illustrated in FIG. 10A sensorycontext may be determined. In some implementations, the context maycomprise one or more spatio-temporal aspects of sensory input (e.g.,206) and/or plant feedback (216 in FIG. 2A). In one or moreimplementations, the sensory aspects may include an object beingdetected in the input, a location of the object, an objectcharacteristic (color/shape), a sequence of movements (e.g., a turn), acharacteristic of an environment (e.g., an apparent motion of a walland/or other surroundings, turning a turn, approach, and/or otherenvironmental characteristics) responsive to the movement. In someimplementations, the sensory input may be received based on performingone or more training trials (e.g., as the trials described with respectto Table 3-Table 5 above) of a robotic apparatus.

At operation 1004, an input may be received from a trainer. In someimplementations, the input may comprise a control command (e.g., rotateright/left wheel and/or other command) that is based on the sensorycontext (e.g., appearance of a target in field of view of the robot'scamera, and/or other sensory context) and provided by a human user. Inone or more implementations, the teacher input signal may comprise anaction indications (e.g., proceed straight towards the target) providedby a computerized agent. The input may be provided by the teacher usingone or more previously developed control elements (primitives) e.g.,542, 454, 456, 564 in FIG. 4B.

At operation 1008 of method 1000, an action may be executed inaccordance with the input and the context. In one or moreimplementations, the action execution may be based on a combined controlsignal, e.g., the signal 240 generated by the combiner 214 in accordancewith any of the methodologies described herein (e.g., using the transferfunction of Eqn. 6). The action may comprise moving forward the platform402 of FIG. 4A, lowering the arm 410, extending the boom 412 or anotheraction configured to propel the attachment 415 forward.

At operation 1010 of method 1000, a determination may be made as towhether additional actions are to be performed based on additional userinputs.

Responsive to a determination that additional actions are to beperformed (e.g., extend the boom 412), the method 1000 may proceed tooperation 1002.

Responsive to a determination that no other additional actions are to beperformed for the context of operation 1002 the method 1000 may proceedto operation 1012, wherein action sequence may be determined. In someimplementations, action sequence may comprise two or more executioninstances of a given action (e.g., activating forward button 1208 tomove platform forward in several steps). In one or more implementations,action sequence may comprise execution of two or more individual actions(e.g., moving forward the platform 402, lowering the arm 410, extendingthe boom 412, and straightening the arm portion 414 of the apparatus 400of FIG. 4A).

At operation 1014, a target performance associated with executing theactions at operation 1008 may be determined. In one or moreimplementations, the performance may be determined based on a deviationbetween the target trajectory (e.g., 630 in FIG. 6B) and the actualtrajectory accomplished during execution of the action at operation1008. In one or more implementations, the performance may be determinedbased on an error measure of Eqn. 15. A control process update maycomprise adaptation of weights of a computerized neuron networkconfigured to implement the learning process. In some implementations,the learning process update may comprise an update of a look-up table.

Responsive to a determination that the performance is lower than thetarget level, the method 1000 may proceed to operation 1002 to continuetraining.

Responsive to a determination that the performance matches or exceedsthe target level, the method 1000 may proceed to operation 1016 whereina composite control element primitive may be generated. In someimplementations, the composite primitive of operation 1016 maycorrespond to the composite controls 1214 1224, 1222 of FIG. 12. A tagmay be associated with the composite control primitive produced atoperation 1016. In one or more implementations, the tag may comprise anaudio command (e.g., ‘forward’, ‘reach’, for commanding the robot tomove forward) and/or other applicable means available to communicatewith the robotic device (e.g., via a brain machine interface. In someimplementations, the robot may comprise an audio processing blockconfigured to store a characteristic (e.g., a spectrogram) associatedwith the command tag (e.g., the word ‘fetch’).

FIG. 10B illustrates a method of configuring a composite actionprimitive based on previously learned sub-action primitives, inaccordance with one or more implementations. In some implementations,the training process illustrated in FIG. 10B may comprise a plurality oftrials wherein during a given trial, the adaptive robotic device mayattempt to follow a target trajectory.

At operation 1022 of method 1020, a robot may be configured to perform atarget action based on user input and characteristic of robotenvironment. In some implementations, the environment characteristic maycomprise a relative positioning of the robot (e.g., 622, in FIG. 6B) anda target (e.g., 642, in FIG. 6B). The target action may comprisefollowing a target trajectory (e.g., 630 in FIG. 6B). In one or moreimplementations, a human trainer may utilize a control interface (e.g.,joystick, buttons) in order to guide the robot along the trajectory.

At operation 1024, learning process of the robotic may be configured todetermine if the target action of operation 1022 may be decomposed intotwo or more sub-actions associated with previously learned primitives.By way of an illustration, a target action comprising reaching for anobject with the attachment 415 of FIG. 4A may be decomposed intosub-actions, including, for example moving forward the platform 402,lowering the arm 410, extending the boom 412, and straightening the armportion 414 of the apparatus 400 of FIG. 4A.

At operation 1026, learning configuration associated with a sub-actionmay be accessed. In some implementations, the learning configuration mayupdate look-up table entries and/or weights of a neuron network.

At operation 1028 of method 1020, the robot may perform an action basedon the user input, sensory context and the learning configurationassociated with the subtask.

At operation 1030, a determination may be made as to whether additionalsubtasks are to be performed. Responsive to a determination thatadditional subtask are to be performed, the method 1020 may proceed tooperation 1026.

Responsive to a determination that no additional subtasks are to beperformed, the method 1020 may proceed to operation 1032 whereincomposite action learning configuration may be stored. In one or moreimplementations, the composite action configuration may comprisepointers to configurations associated with sub-actions and/or order oftheir execution.

FIG. 10C illustrates a method of combining execution multiple actionsinto a single higher level control element, in accordance with one ormore implementations. In some implementations, the process illustratedin FIG. 10C may correspond to a user teaching a robot to perform acomposite action (e.g., approach an object, pick up the object, andbring back the object) using a single composite control primitive (e.g.,‘fetch’). In one or more implementations, the lower level actions(sub-actions approach, pick up, and bring back) may be activated usingrespective lower level control primitives that have been learnedpreviously. Learning of the primitives may be effectuated usingcollaborative learning methodology, for example, such as described inU.S. patent application Ser. No. 13/918,620 entitled “PREDICTIVE ROBOTICCONTROLLER APPARATUS AND METHODS”, incorporated supra.

At operation 1042, the action execution may commence. In someimplementations, the training commencement may be based on a userinstruction (e.g., voice command ‘start’, ‘record’, a button push, agesture, and/or other user instruction) to a controller of the robotindicating to beginning of the composite action execution. Responsive toreceipt of the execution start instruction, the controller may activate,e.g., a recording function configured to store a sequence of subsequentaction.

At operation 1044 of method 1040, multiple actions may be executed bythe robot using one or more available action primitives. In one or moreimplementation, the action execution of operation 1044 may be performedin collaboration with the user.

At operation 1046, the action execution may be terminated. In someimplementations, the action termination may be based on a userinstruction (e.g., voice command ‘stop’, ‘enough’, a button push, agesture, and/or other indication) to the controller indicating theending of the composite action execution. In one or moreimplementations, the action termination may be based on the ability ofdevice to determine if the action has been successfully executed. By wayof illustration, once a robot has acquired an object and brought itback, then it may be determined that the action of fetch has beensuccessfully accomplished. In some implementations, the persistence ofan action may be configured to decay over time. Responsive to receipt ofthe execution start instruction, the controller may deactivate, e.g., arecording.

At operation 1048, a composite primitive may be generated and a tag maybe assigned. In one or more implementations, the tag may comprise anaudio command (e.g., ‘forward’, ‘reach’), click pattern, and/or otherindication. In some implementations, the robotic apparatus may comprisean audio processing block configured to store a characteristic (e.g., aspectrogram) associated with the command tag (e.g., the word ‘fetch’).In some implementations, the composite primitive generation may comprisestoring pointers to configurations associated with sub-actions, order oftheir execution and/or other operations. The composite action generationmay comprise provision of a control element (e.g., 1214, 1222, 1224) ona user interface device. The control element may be subsequentlyutilized for executing the composite action of the process 1040.

FIG. 11 illustrates a mobile robotic apparatus that may comprise anadaptive controller (e.g., the controller for FIG. 2A). The roboticapparatus 1160 may comprise a camera 1166. The camera 1166 may becharacterized by a field of view 1168. The camera 1166 may provideinformation associated with objects within the field of view. In someimplementations, the camera 1166 may provide frames of pixels conveyingluminance, refreshed at 25 Hz frame rate.

One or more objects (e.g., an obstacle 1174, a target 1176, and/or otherobjects) may be present in the camera field of view. The motion of theobjects may result in a displacement of pixels representing the objectswithin successive frames, such as described in U.S. patent applicationSer. No. 13/689,717, entitled “APPARATUS AND METHODS FOR OBJECTDETECTION VIA OPTICAL FLOW CANCELLATION”, filed Nov. 30, 2012,incorporated herein by reference in its entirety.

When the robotic apparatus 1160 is in motion, such as shown by arrow1164 in FIG. 11, the optical flow estimated from the image data maycomprise the self-motion component and the object motion component. Byway of a non-limiting example, the optical flow measured by the rover ofFIG. 11B may comprise one or more of (i) self-motion components of thestationary object 1178 and the boundary (e.g., the component 1172associated with the floor boundary); (ii) component 1180 associated withthe moving objects 116 that comprises a superposition of the opticalflow components due to the object displacement and displacement of therobotic apparatus, and/or other components. In one or moreimplementation, the robotic apparatus 1160 may be trained to avoidobstacles (e.g., 1174) and/or approach targets (e.g., 1176) usingcollaborative learning methodology of, e.g., FIG. 6B

Various exemplary computerized apparatus may be utilized with therobotic training methodology of the disclosure. In some implementations,the robotic apparatus may comprise one or more processors configured toexecute the adaptation methodology described herein. In someimplementations, an external processing entity (e.g., a cloud service,computer station and/or cluster) may be utilized in order to performcomputations during training of the robot (e.g., operations of methods1000, 1020, 1040).

Robot training methodology described herein may advantageously enabletask execution by robotic devices. In some implementations, training ofthe robot may be based on a collaborative training approach wherein therobot and the user collaborate on performing a task.

The collaborative training approach described herein may advantageouslyenable users to train robots characterized by complex dynamics whereindescription of the dynamic processes of the robotic platform and/orenvironment may not be attainable with precision that is adequate toachieve the target task (e.g., arrive to a target within given time).The collaborative training approach may enable training of robots inchanging environment (e.g., train vacuum cleaner robot to avoiddisplaced and/or newly placed objects while cleaning newly vacant areas.

The remote controller may comprise multiple control elements (e.g.,joysticks, sliders, buttons, and/or other control elements). Individualcontrol elements (primitives) may be utilized to (i) activate respectiveportions of the robot platform (e.g., actuators), (ii) activate one ormore actuator with different magnitude (e.g., move forward slow, moveforward fast), and/or effectuate other actions.

Based on the collaborative training, the remote controller may providecomposite controls configured based on operation of two or more ofcontrol primitives. Activation of a single composite control may enablethe robot to perform a task that has previously utilized activation ofmultiple control primitives. Further training may enable development ofcomposite controls of higher levels in a hierarchy.

It will be recognized that while certain aspects of the disclosure aredescribed in terms of a specific sequence of steps of a method, thesedescriptions are only illustrative of the broader methods of theinvention, and may be modified as required by the particularapplication. Certain steps may be rendered unnecessary or optional undercertain circumstances. Additionally, certain steps or functionality maybe added to the disclosed implementations, or the order of performanceof two or more steps permuted. All such variations are considered to beencompassed within the disclosure disclosed and claimed herein.

While the above detailed description has shown, described, and pointedout novel features of the disclosure as applied to variousimplementations, it will be understood that various omissions,substitutions, and changes in the form and details of the device orprocess illustrated may be made by those skilled in the art withoutdeparting from the disclosure. The foregoing description is of the bestmode presently contemplated of carrying out the invention. Thisdescription is in no way meant to be limiting, but rather should betaken as illustrative of the general principles of the invention. Thescope of the disclosure should be determined with reference to theclaims.

What is claimed:
 1. A method for controlling a robot to execute a task,the method comprising: during a given trial of one or more trainingtrials, based on a first indication received from a user, executing aplurality of actions, individual ones of the plurality of actions beingconfigured based on sensory input and a given user input of a pluralityof user inputs, where each one of the one or more training trials has atrial duration associated therewith, the trial duration at least beingconfigured to separate two or more activations of at least one actuatorof the robot; determining a performance measure associated with theexecuting of the plurality of actions, the performance measure beingbased at least in part on a difference between target actions and theplurality of actions; when the performance measure does not meet orexceed a target level, during a subsequent trial of the one or moretraining trials, executing another plurality of actions based on asecond indication received from the user, and determining anotherperformance measure associated with the executing of the other pluralityof actions; and when the performance measure meets or exceeds the targetlevel, based on a third indication received from a user, associating acontrol component with the task, the control component being configuredto be activated by a presence of a user discernible representation;wherein: the execution of the plurality of actions is configured toeffectuate execution of the task by the robot; and activation by theuser of the control component using the user discernible representationis configured to cause the robot to execute the task in a sequencecorresponding to the plurality of actions that were executed based onthe first indication received from the user.
 2. The method of claim 1,wherein the provision of the user discernible representation comprises:disposing an icon on a display; and configuring a user interface deviceto receive input based on the user activation configured in accordancewith the icon.
 3. The method of claim 1, wherein the user discerniblerepresentation comprises a voice command, an audio signal, or one ormore gestures.
 4. A non-transitory computer readable medium havinginstructions embodied thereon, the instructions configured to, whenexecuted by a physical processor, cause the physical processor to: basedon a detection of a sequence of discrete control actions comprising twoor more activations of a robotic apparatus by a user, generate acomposite control element, the composite control element beingconfigured to execute the sequence of discrete control actions in anorder of execution provided by one or more parameters associated with atleast one of the sequence of discrete control actions; and when theexecution of the sequence of discrete control actions is within anexpected performance value assign the generated composite controlelement to a tag, the tag associated with a user interface controlelement; wherein: an invocation of the tag is configured to execute thesequence of discrete control actions in accordance with the determinedorder of execution; the robotic apparatus comprises a controllerconfigured to generate a control signal, individual ones of the sequenceof discrete control actions being configured based on the controlsignal, the generation of the control signal being effectuated by alearning process; the learning process comprises execution of multipletraining trials, individual ones of the multiple training trials beingcharacterized by a trial duration; individual ones of the sequence ofdiscrete control actions correspond to an execution of a given trainingtrial of the multiple training trials; and the two or more activationsof the robotic apparatus comprise activations of at least one actuatorat two or more instances of time, the two or more instances of timebeing separated by a time period, the time period corresponding to thetrial duration.
 5. The non-transitory computer readable medium of claim4, wherein: the sequence is configured to cause the robotic apparatus toexecute a target task; individual ones of the two or more activationsare configured to execute responsive to the user issuing two or morecontrol commands via a remote control interface; and the compositecontrol element is configured to execute the target task responsive to asingle activation of the composite control element by the user.
 6. Thenon-transitory computer readable medium of claim 5, wherein individualones of the two or more control commands comprise multiple instances ofa given control operation effectuated based on multiple activations of afirst control element associated with the remote control interface. 7.The non-transitory computer readable medium of claim 5, wherein:individual ones of the two or more control commands comprise one or moreinstances of two or more control operation effectuated based onactivations of a first control element and a second control elementassociated with the remote control interface; and the single activationof the composite control element is configured to obviate theactivations of the first control element and the second control elementby the user.
 8. The non-transitory computer readable medium of claim 5,wherein: the user comprises a human; and detection is configured basedon a request by the user.
 9. The non-transitory computer readable mediumof claim 4, wherein: the learning process comprises adjusting a learningparameter based on a performance measure, the performance measure beingconfigured based on individual ones of the sequence of discrete controlactions and a target action; and the detection is effectuated based onan indication provided by the learning process absent user request. 10.The non-transitory computer readable medium of claim 4, wherein: therobotic apparatus comprises two or more individually controllableactuators; and the two or more activations of the robotic apparatuscomprise activations of individual ones of the two or more actuators.11. A remote control apparatus of a robot, the remote control apparatuscomprising: a physical processor configured to operate a learningprocess; a sensor coupled to the physical processor; a user interfaceconfigured to present one or more human perceptible control elements;and a remote communications interface configured to communicate to therobot a plurality of control commands configured by the learning processbased on an association between a sensor input and individual ones of aplurality of user inputs provided via one or more of the one or morehuman perceptible control elements; wherein: the communication to therobot of the plurality of control commands is configured to cause therobot to execute a plurality of actions; the learning process isconfigured based on a performance measure between a target action andindividual ones of the plurality of actions; the association between thesensor input and the individual ones of the plurality of user inputs isconfigured to cause generation of one or more of control primitives,individual ones of the one or more of control primitives beingconfigured to cause execution of a respective action of the plurality ofactions; the learning process is configured to generate a compositecontrol; the composite control is configured to actuate the plurality ofactions that result in an execution of the target action responsive to asingle activation of the composite control by a user, the singleactivation by the user being configured to cause the execution of theplurality of actions in an order determined according to the pluralityof user inputs; the single activation of the composite control isconfigured based on a detection, by the remote control apparatus, of apresence of the one or more human perceptible control elements; thegeneration of the composite control comprises a presentation of the oneor more human perceptible control elements, the one or more humanperceptible control elements being configured to cause activation of thecomposite control by the user; and the activation of the compositecontrol is configured based on a detection of one or more of: an audiosignal, a touch signal, and an electrical signal by the user interface,where the user interface comprises a camera, and the electrical signalis configured based on a captured representation of the user by thecamera.
 12. The apparatus of claim 11, wherein: the learning process isconfigured to generate the composite control based on a detection, bythe remote control apparatus, of the individual ones of the plurality ofuser inputs provided via the one or more of the one or more humanperceptible control elements; and an individual action of the pluralityof actions corresponds to execution of a task.
 13. The apparatus ofclaim 11, wherein: the learning process is configured to generate thecomposite control based on a request by the user.
 14. The apparatus ofclaim 11, wherein the learning process is configured based on asupervised learning process, the supervised learning process beingconfigured based on a sensory context and a combination of a controlsignal and the individual ones of the plurality of user inputs.
 15. Theapparatus of claim 11, wherein: the provision of individual ones of theplurality of user inputs is configured based on an audible tag or atouch indication of the user interface.
 16. The apparatus of claim 11,wherein: the user interface comprises a touch sensitive interface; andthe touch signal is configured based on a pattern provided by the uservia the touch interface.